1、單選按鈕
<h:selectOneRadio id="sel" value="#{HelloBean.selected}">
<f:selectItem id="red" itemLabel=" red " itemValue="red"/>
<f:selectItem id="green" itemLabel=" green " itemValue="green"/>
</h:selectOneRadio>
2、配置本地化
faces-config.xml文件中添加
<application>
<locale-config>
<default-locale>zh_CN</default-locale>
</locale-config>
</application>
3、配置全局錯誤頁面
建立錯誤頁面error.jsp
isErrorPage="true"
……
<%=exception.getLocalizedMessage()%>
配置web.xml(可以自由配置異常類型/另外也可以根據error-code配置)
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
4、配置統一的頁面
配置所有"error"都指向同一個頁面error.jsp(faces-config.xml)
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>error</from-outcome>
<to-view-id>/error.jsp</to-view-id>
</navigation-case>
</navigation-rule>
5、request.setAttribute("name")
在JSF中轉換成:
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.getExternalContext().getRequestMap().put("name","value");
6、配置保存視圖的狀態(javax.faces.STATE_SAVING_METHOD)
Web.xml:
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
或者保存在服務器上:
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
一般在開發應用的時候保存在客戶端,如果保存在服務器端就無法知道視圖是否過期,會造成修改了JSP后,頁面之間不一致。
7、使用JSTL
<%@ taglib uri="
8、修改系統自帶的錯誤提示信息
在myfaces-all.jar的 javax.faces.包下面properties文件
9、MyFaces與JSF(SUN)的包會有沖突
有時無法跳轉,后來發現原因在于我把Sun的JSF兩個包都包括進來了,發生了沖突,其實MyFaces中就已經有了jsf-impl.jar包。
10、在JSF中應用JS
在JSF中應用javascript在提交前做一些客戶端的驗證或修改DOM動作時,有兩種常用方法
1、在form中添加onsubmit屬性
<h:form onsubmit="return JS()">
……
</h:form>
2、在commandButton中添加onclick屬性
<h:commandButton onclick="return JS()"/>
注意:JS在驗證失敗(即不希望提交時)必須return false,否則都會提交。
11、保護/下面的jsp文件不被直接訪問
在web.xml中加入:
<security-constraint>
<display-name>
Prevent access to raw JSP pages that are for JSF pages.
</display-name>
<web-resource-collection>
<web-resource-name>Raw-JSF-JSP-Pages</web-resource-name>
<!-- Add url-pattern for EACH raw JSP page -->
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/login.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>No roles, so no direct access</description>
</auth-constraint>
</security-constraint>
個人認為,JSF目前技術不夠成熟,采用JSF框架有很大的技術風險,當遇到問題時很難找到答案,而且兼容性不好,經常會有莫名奇妙的問題冒出來。而且同時SUN的JSTL和JSF之間的EL都不能很好的融合,期待JSF2.0,期待MyFaces1.2。但是JSF是一個標準,將來一定會變得很成熟。JSF類似.NET,所以JSF會吸收.NET的很多優點,JSF前景甚好。前不久看到在NETBEAN下開發JSF,發現JSF的組件很豐富。
JSF入門:http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2630 RichFaces Demo:
http://livedemo.exadel.com/richfaces-demo/richfaces/tabPanel.jsf IBM JSF:
http://www.ibm.com/developerworks/cn/java/j-jsf3/
posted on 2007-06-25 17:58
破繭而出 閱讀(1713)
評論(0) 編輯 收藏 所屬分類:
框架