2008.04.11 摘自JSF in action Application Configuration file Page/131
1.JSF 配置文件分为了三部分,日常配置,扩展组件配置,和高级特性配置,结构如图:

Figure 3.3
JSF application files are XML files that begin with a top-level <faces-config> element. All of the subelements are optional, and can be grouped into three major categories. For day-to-day development, you only have to worry about the first category.
2. 具体的描述如下:
Table 3.5 The three main configuration categories with corresponding XML elements
| Category |
Feature |
XML Element |
Everyday application configuration and registration of advanced extensions |
Application configuration. Used for specifying supported languages, the location of customized application messages, the default render kit, and advanced pluggable components.
Managed bean creation facility. Controls automatic creation of objects in a particular scope.
Referenced beans. Used to tell an IDE about other objects that may become available.
Navigation rules. Controls flow of application from one page to the next.
|
<application>
<managed-bean>
<referenced-bean>
<navigation-rule>
|
User interface extension registration |
Component registration. Used to register components with system.
Render kit and renderer registration. Used to either add renderers to the default render kit or define entirely new render kits.
Validator registration. Used to register validators with the system.
Converter registration. Used to register converters with the system.
|
<component>
<render-kit>
<validator>
<converter>
|
Configuration of advanced features |
Phase listener registration. Registers phase listeners for use with the system.
Factory configuration. Defines classes for the factories that instantiate the core JSF classes.
|
<phase-listener>
<factory>
|
3. 以下为范例
Listing 3.1 Selected portions of the reference implementation CarDemo sample application

<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<application>
<message-bundle>carstore.bundles.Messages</message-bundle>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
</application>
<validator>
<description>
Registers the concrete Validator implementation,
carstore.FormatValidator with the validator
identifier, FormatValidator.
</description>
<validator-id>FormatValidator</validator-id>
<validator-class>carstore.FormatValidator</validator-class>
<attribute>
<description>
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.
</description>
<attribute-name>formatPatterns</attribute-name>
<attribute-class>java.lang.String</attribute-class>
</attribute>
</validator>
<converter>
<description>
Registers the concrete Converter implementation,
carstore.CreditCardConverter using the ID,
creditcard.
</description>
<converter-id>creditCardConverter</converter-id>
<converter-class>carstore.CreditCardConverter</converter-class>
</converter>
...
<managed-bean>
<description>
Causes the default VariableResolver implementation to instantiate
the managed bean, CustomerBean of the class, carstore.CustomerBean
in session scope if the bean does not already exist in any scope.
</description>
<managed-bean-name> customer </managed-bean-name>
<managed-bean-class> carstore.CustomerBean </managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
<managed-bean>
<description>
The main backing file bean
</description>
<managed-bean-name> carstore </managed-bean-name>
<managed-bean-class> carstore.CarStore </managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/chooseLocale.jsp</from-view-id>
<navigation-case>
<description>
Any action on chooseLocale should cause navigation to storeFront.jsp
</description>
<from-outcome>storeFront</from-outcome>
<to-view-id>/storeFront.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/storeFront.jsp</from-view-id>
<navigation-case>
<description>
Any action that returns "carDetail" on storeFront.jsp should
cause navigation to carDetail.jsp
</description>
<from-outcome>carDetail</from-outcome>
<to-view-id>/carDetail.jsp</to-view-id>
</navigation-case>
</navigation-rule>
...
</faces-config>
发表于 @ 2008年04月11日 17:56:00|评论(loading...)|编辑