出处:http://www.cnblogs.com/zxpgo/articles/2570175.html

感谢作者的分享!!

——————————————————————————————————————————————————

JSF提供的核心控制器是javax.faces.webapp.FacesServlet。

web.xml中的welcome-file-list标签作用:当用户在浏览器中输入的URL不包含某个servlet名或JSP页面时,welcome-file-list元素可指定显示的默认文件。 welcome-file子元素用于指定默认文件的名称。welcome-file-list元素可以包含一个或多个welcome-file子元素。如果在第一个welcome-file元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。

在web.xml中配置FacesServlet核心控制器:

    <!-- JSF的核心控制器 FacesServlet -->
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>

这里设置了拦截.jsf结尾的请求。

需要为JSF配置一些额外的参数,可以在web.xml中使用<context-param>元素进行配置。下面是常用的一些配置:


<!-- 配置JSF程序状态的保存位置,如果设置成server则保存在session中,
如果保存在client中可以保证服务器重启应用状态也不会丢失 -->
<context-param>
<description>
指示是在客户端(client)还是在服务器端(server)保存UI组件的状态和
session信息, server表示保存到服务器端,client表示保存到客户端,
默认为server。
</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<!-- 程序状态保存在客户端 -->
<param-value>client</param-value>
</context-param> <!-- 指定JSF映射资源时的默认后缀,默认为.jsp -->
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jsp</param-value>
</context-param> <!-- 指定JSF所管理的生命周期实例的标识符 -->
<context-param>
<description>
当在这个应用中处理JSF请求时,
所使用的生命周期实例的标识符.
默认的生命周期模型(没看懂)
</description>
<param-name>javax.faces.LIFECYCLE_ID</param-name>
<param-value></param-value>
</context-param> <!-- 指定JSF配置文件的保存位置 -->
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-nav.xml</param-value>
</context-param> <!-- 指定是否需要验证自定义组件 -->
<context-param>
<description>
Set this flag to true if you want the JSF
Reference Implementation to verify that all of the application
objects you have configured (components, converters,
renderers, and validators) can be successfully created.
Default value is false.
</description>
<param-name>javax.faces.verifyObjects</param-name>
<param-value>true</param-value>
</context-param> <!-- 指定是否需要验证XML文件 -->
<context-param>
<description>
Set this flag to true if you want the JavaServer Faces
Reference Implementation to validate the XML in your
faces-config.xml resources against the DTD. Default
value is false. </description>
<param-name>javax.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param> <!-- 当设置在服务器端保存状态时,控制session保存的视图数量,-1表示没有限制 -->
<context-param>
<param-name>javax.faces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
<param-value>-1</param-value>
</context-param>

JSF的配置文件faces-config.xml:

最常用的两个配置元素:

       <managed-bean>:JSF应用中所有的托管Bean都放在该元素下

  <managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

<navigation-rule>:用于管理JSF应用的导航规则

   <navigation-rule>
<from-view-id>/pages/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/pages/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>

       其他的配置元素:
       应用管理相关配置:

       <application>:用于管理JSF应用相关配置
       <referenced-bean>:配置被引用Bean

注册自定义组件的相关配置:

       <converter>:注册自定义转换器
       <validator>:注册自定义输入校验器
       <component>:注册自定义组件
       <render-kit>:注册自定义组件绘制器和绘制器包

高级扩展配置:

       <phase-listener>:注册生命周期监听器
       <factory>:配置实例化JSF核心类的工厂
 

JSF web.xml的各类参数属性配置的更多相关文章

  1. JSP/JSF从web.xml中取出context-param的配置信息

    JSP/JSF从web.xml中取出context-param的配置信息. 应用场景:我们配置了项目的版本信息,想让他显示在页面上,如: <context-param><!-- ## ...

  2. Java Web的web.xml文件作用及基本配置(转)

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  3. web.xml的初始化参数

    web.xml的初始化参数 ---------首先声明,这里所介绍的是web中context-param,init-param参数的初始化配置---------- ------------------ ...

  4. web.xml的加载过程配置详解

      一:web.xml加载过程 简单说一下,web.xml的加载过程.当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等).首先会去读取web.xml配置文件里的配置,当这一步骤没有 ...

  5. 【转载】Java Web的web.xml文件作用及基本配置

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  6. web.xml的作用及基本配置

    web工程中的web.xml文件有什么作用呢?它是每个web.xml工程都必须的吗? 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的.那什么时候需要,什 ...

  7. JavaWeb项目中web.xml有关servlet的基本配置

    JavaWeb项目中web.xml有关servlet的基本配置: 我们注意到,tomcat下的conf中也有一个web.xml文件,没错的,所有的JavaWeb项目中web.xml都继承自服务器下的w ...

  8. 第7章—SpringMVC高级技术—不用web.xml,而使用java类配置SpringMVC

    不用web.xml,而使用java类配置SpringMVC DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置 ...

  9. Tomcat6和7版本对web.xml中taglib标签的配置差异

    原来部署在Tomcat6中的应用在Tomcat7中运行时报错如下错误: java.lang.IllegalArgumentException: taglib definition not consis ...

随机推荐

  1. mysql decode encode 乱码问题

    帮网友解决了一个问题,感觉还是挺好的. 问题是这样的:  问个问题:为什么我mysql中加密和解密出来的字段值不一样?AES_ENCRYPT和  AES_DECRYPT  但是解密出来就不对了 有时候 ...

  2. <转载>AWS 基础知识

    什么是AWS? Amazon Web Services (AWS) , 其实就是 亚马逊提供的专业云计算服务.其提供服务包括:亚马逊弹性计算网云(Amazon EC2).亚马逊简单储存服务(Amazo ...

  3. oracle查询重复的数据

    在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件.块.行上.在重复的记录中,可能所有列的内容都相同,但rowi ...

  4. 使用expect解决shell交互问题

    比如ssh的时候,如果没设置免密登陆,那么就需要输入密码.使用expect可以做成自动应答 1.expect检测和安装 sudo apt-get install tcl tk expect 2.脚本样 ...

  5. [bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr'

    [bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr'  Full parser context    ksrGe ...

  6. Web.xml 中 metadata-complete 介绍

    Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性, 该属性指定当前的部署描述文件是否是完全的. 如果 ...

  7. UI5-学习篇-9-本地Eclipse UI5应用发布到SAP前端服务器

    参考路径: https://blogs.sap.com/2017/11/19/sap-fiori-ui5-application-deployment/ 1.准备环境 2.上载SAP-FIORI前端服 ...

  8. Model操作补充

    参考: http://www.cnblogs.com/wupeiqi/articles/6216618.html

  9. CAS单点登录原理解析

    转自: https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名 ...

  10. 微信、陌陌等著名IM软件设计架构详解(转)

    对微信.陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了.因为用户不可能随时携带电源,充电宝.所以必须考虑到电量问题.那就要检查我们工程是不是有后台运行,心跳包 ...