Chinaunix首页 | 论坛 | 博客
  • 博客访问: 459336
  • 博文数量: 173
  • 博客积分: 2970
  • 博客等级: 少校
  • 技术积分: 1490
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-11 14:35
文章存档

2011年(9)

2010年(17)

2009年(62)

2008年(85)

我的朋友

分类: Java

2009-02-18 13:48:29

为开发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”

    >

 

    场所有消息资源束 -->

   

        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

名称

通用前缀

说明

Core

f

包含独立于特定呈现器的标签(如,等等)

HTML

h

包含所有标准组件和HTML呈现包

 

JSF支持两种包含。对动态包含,有两个要求:

1.     被包含页面必须封装在JSF 核心标签中。这个标签可以位于被包含页面中也可以围绕包含语句;

2.     被包含页面中的所有模板文本和非JSF标签必须位于JSF 核心标签之内。

所以,假定有下面的JSP页面的代码片断:

   

foo.jsp可能是这样的:

   

   

   

        Templaate text.

       

   

可以看到,整个被包含页面被封装在标签中,并且所有的非JSF标签和模板文本封装在标签中。另外,也可以将标签移到第一个页面,围绕在标签之外。

使用静态包含要更简单些。无特别的限制甚至并不非要使用标签。

阅读(664) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~