JBoss和GlassFish中部署RichFaces較容易成功
[size=medium]在MyEclipse6.0中部署到Tomcat的RichFaces項目太痛苦了,N多錯誤,到JBoss部署和GlassFish部署就不一樣了,一次部署就成功!畢竟SUN的JSF參考實現(xiàn)使用的服務(wù)器就是GlassFish,而RichFaces是JBoss的開源框架!
1.解壓下載的壓縮包文件,復(fù)制其中的“richfaces-api-3.1.0.jar”,“richfaces-impl-3.1.0.jar”,“richfaces-ui-3.1.0.jar”文件到應(yīng)用程序 "WEB-INF/lib" 目錄下。
2.添加如下內(nèi)容到應(yīng)用程序“WEB-INF/web.xml”文件中。
- <context-param>
- <param-name>org.richfaces.SKIN</param-name>
- <param-value>blueSky</param-value>
- </context-param>
- <filter>
- <display-name>RichFaces Filter</display-name>
- <filter-name>richfaces</filter-name>
- <filter-class>org.ajax4jsf.Filter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>richfaces</filter-name>
- <servlet-name>Faces Servlet</servlet-name>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>INCLUDE</dispatcher>
- </filter-mapping>
3.添加如下幾行到應(yīng)用程序 JSP 頁面中:
- <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
- <%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
對于 XHTML 頁面:
web.xml 中的 Richfaces 參數(shù)
I、初始化參數(shù)(<context-param>)
1.org.richfaces.SKIN
默認(rèn)值:DEFAULT
其它八種預(yù)定義的皮膚:
DEFAULT
plain
emeraldTown
blueSky
wine
japanCherry
ruby
classic
deepMarine
其值為在應(yīng)用中使用的皮膚的名字。其值可用一個精確(大小寫)的字符串做為皮膚名字,或指向一個字符串屬性的 EL 表達(dá)式(#{...}),或 org.richfaces.framework.skin 類型的一個屬性。
2.org.ajax4jsf.LOGFILE
默認(rèn)值:none
這是一個指向應(yīng)用程序或容器日志文件的 URL (如果有日志文件的話)。如果設(shè)置了這個參數(shù),那么日志文件的內(nèi)容將會作為一個調(diào)試錯誤頁面在框架(iframe)窗口中顯示。
3.org.ajax4jsf.VIEW_HANDLERS
默認(rèn)值:none
這是一個由逗號分隔的自定義 ViewHandler 實例的序列,用于插入到 Handlers 鏈路上。Handlers 按照給定的順序被插入到 RichFaces viewhandlers 之前。例如,在 facelets 應(yīng)用程序中,這個參數(shù)必須包含 com.sun.facelets.FaceletViewHandler,來代替在 faces-onfig.xml 文件中的聲明。
4.org.ajax4jsf.CONTROL_COMPONENTS
默認(rèn)值:none
這是一個逗號分隔的名字序列,用于將一個組件作為一個特殊的控制情形,例如資源文件加載器,別名(alias)bean 組件等等。這是一個從 COMPONENT_TYPE 靜態(tài)屬生反射得到的一個組件類型。對于這樣類型組件的編碼方法常常在呈現(xiàn)的 Ajax 響應(yīng)中被調(diào)用,盡管這個組件不在被更新部分中。
5.org.ajax4jsf.ENCRYPT_RESOURCE_DATA
默認(rèn)值:false
為了生成的資源,例如加密生成的數(shù)據(jù),它會在資源的 URL 上被編碼加密。例如,URL 指向一個由 mediaOutput 組件生成的圖片,而 mediaOutput 組件包含一個生成方法的名字,那么對于一個黑客的攻擊來說,他很可能創(chuàng)建一個對于任何 JSF baked beans 或其它屬性的請求。為了避免這樣的攻擊,在重要的應(yīng)用程序中設(shè)置這個參數(shù)為“true”(應(yīng)用于 JRE > 1.4)。
6.org.ajax4jsf.ENCRYPT_PASSWORD
默認(rèn)值:random
用于資源數(shù)據(jù)加密的一個密碼。如果沒有設(shè)置,將使用一個隨機的密碼。
7.org.ajax4jsf.COMPRESS_SCRIPT
默認(rèn)值:true
不允許框架重新格式化 JavaScript 文件(使其不利于調(diào)試)
II、org.ajax4jsf.Filter 初始化參數(shù)
1.log4j-init-file
這是一個指向 log4j.xml 配置文件的路徑(相對于應(yīng)用程序上下文),log4j.xml 可用于創(chuàng)建每個應(yīng)用程序的自定義日志信息。
2.enable-cache
默認(rèn)值:true
啟用框架所生成資源(JavaScript,CSS,images,等等)的緩存。為了調(diào)試開發(fā)自定義的 JavaScript 或 Style(css) 目的,應(yīng)避免在瀏覽器中使用舊的緩存數(shù)據(jù)。
3.forceparser
默認(rèn)值:true
通過一個 HTML 語法檢查器強制解析每一個 JSF 頁面。如果為“false”,只有 Ajax 響應(yīng)才被語法檢查器解析且被轉(zhuǎn)換為規(guī)范的 XML。設(shè)置為“false”除了提高了性能,還為 Ajax 更新提供視覺的效果。
其他
因為本人現(xiàn)在使用的是 Myfaces,所以下面列出了有關(guān) Myfaces 與 RichFaces 集成的問題:
問題在于 web.xml 文件中所定義的多個不同的過濾器之間存在沖突。為了避免這些問題,RichFaces 過濾器在配置文件中的位置必須被定義在其它過濾器之上。
當(dāng)使用 MyFaces + Seam 時,還有其它問題。如果使用這個組合,那么應(yīng)該在 <f:view> 標(biāo)簽內(nèi)部使用 <a4j:page> 標(biāo)簽,然后再在 <a4j:page> 標(biāo)簽中包含其它內(nèi)容,因為 Myfaces 中的 <f:view> 實現(xiàn)存在一些問題。
以上是JBoss部署RichFaces和GlassFish部署RichFaces的步驟
【編輯推薦】