- 论坛徽章:
- 0
|
为开发JSF应用,需要一个JSF实现。参考实现(RI)是所有其它实现都要遵循的标准。
所有JSF应用都必须的JAR文件:
Jsf-api.jar, jsf-impl.jar, jstl.jar, standard.jar, commons-beanutils.jar,
commons-collections.jar, commons-digester.jar, commons-logging.jar
web.xml配置:
…
Faces Servlet
javax.faces.webapp.FacesServlet
Faces Servlet
/faces/*(称为前缀映射或*.faces称为后缀映射)
…
JSF应用的配置参数:
Context参数
说明
默认
javax.faces.CONFIG_FILES
逗号分隔的上下文相关的资源路径列表,JSF将在装载WEB-INF/faces-config.xml之前载入这些资源
无
java.faces.DEFAULT_SUFFIX
当使用扩展名映射(后缀映射如*.faces)时,所使用资源的默认后缀
.jsp
java.faces.LIFECYCLE_ID
当在这个应用中处理JSF请求时,所使用的生命周期实例的标识符
默认的生命周期模型
javax.faces.STATE_SAVING_METHOD
指示在客户端(client)还是在服务器端(server)保存UI组件的状态
server
RI特定的配置参数:
Context参数
说明
默认
com.sun.faces.NUMBER_OF_VIEWS_IN_SESSION
当状态保存方法设置为server时,控制会话中保存的视图数量
无
com.sun.faces.validateXml
告诉JSF根据DTD验证配置文件
false
com.sun.faces.verifyObjects
告诉JSF验证其可以创建应用对象(组件,呈现器,转换器等)
false
MyFaces特定的配置参数:
Context参数
说明
默认
myfaces_allow_javascript
True,如果组件允许JavaScript
true
myfaces_pretty_html
指定显示的HTML是否进行格式化,以便它是“人可读的”(给输出附加的不影响HTML代码的行分隔符和空格)
true
myfaces_allow_designmode
使用CGLib字节码类修改的实现设计模式
false
JSF应用配置总体分为三种:分别针对日常应用开发,UI扩展开发(编写组件,呈现器,转换器或者验证器)和高级开发。
faces-config.xml中三类主要配置类别以及对应的XML元素(顶层根元素)
类别
特征
XML元素
日常应用配置和高级扩展的注册
应用配置。用于指定支持的语言,定制应用消息的位置,默认的呈现包,以及高级的可插入组件
受管bean创建工具。
控制在特定范围的对象的自动创建被引用的bean
用来告诉IDE其它可以访问的对象的导航规则,控制一个页面到另一个页面的应用流
用户界面扩展注册
组件注册。用于向系统注册组件
呈现包和呈现器注册。用于向呈现包添加呈现器或者定义整个新的呈现包
验证器注册。用于向系统注册验证器
转换器注册。用于向系统注册转换器
高级扩展特征的配置
阶段监听器注册。向系统注册阶段监听器
工厂配置。定义实例化核心JSF类的工厂
faces-config.xml:
1.0”?>
“-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN”
http://java.sun.com/dtd/web-facesconfig_1_0.dtd
>
场所有消息资源束 -->
carstore.bundles.Messages
en
de
fr
es
定制验证器 -->
Registers the concrete Validator implementation,
crstore.FormatValidator with the validator identifier,FormatValidator.
FormatValidator
carstore.FormatValidator
List of format patterns separated by ‘|’. The validator
Compares these patterns against the data entered in a component that
Has this validator registered on it.
formatPatterns
java.lang.String
定制转换器 -->
Registers the concrete Converter implementation,
carstore.CreditCardConverter using the ID, creditcard.
creditCardConverter
carstore.CreditCardConverter
受管bean -->
abc
customer
carstore.CustomerBean
session
导航规则 -->
/chooseLocale.jsp
abc
storefront
/storefront.jsp
…
JSF定制标签库:
URI
名称
通用前缀
说明
http://java.sun.com/jsf/core
Core
f
包含独立于特定呈现器的标签(如,等等)
http://java.sun.com/jsf/html
HTML
h
包含所有标准组件和HTML呈现包
JSF支持两种包含。对动态包含,有两个要求:
1. 被包含页面必须封装在JSF 核心标签中。这个标签可以位于被包含页面中也可以围绕包含语句;
2. 被包含页面中的所有模板文本和非JSF标签必须位于JSF 核心标签之内。
所以,假定有下面的JSP页面的代码片断:
…
…
而foo.jsp可能是这样的:
…
Templaate text.
可以看到,整个被包含页面被封装在标签中,并且所有的非JSF标签和模板文本封装在标签中。另外,也可以将标签移到第一个页面,围绕在标签之外。
使用静态包含要更简单些。无特别的限制—甚至并不非要使用标签。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6055/showart_1832604.html |
|