JSF环境搭建web.xml和faces-config.xml配置

简介:

转载:http://www.cnblogs.com/zxpgo/archive/2012/06/29/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核心类的工厂
 
 
相关文章
|
3月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
63 4
|
18天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
54 6
|
2月前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
58 5
|
3月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
171 0
|
3月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
89 0
|
3月前
|
NoSQL Java 数据库连接
springBoot:整合其他框架&condition&切换web配置 (五)
本文档介绍了如何在Spring Boot项目中整合JUnit、Redis和MyBatis等框架,并提供了相应的依赖配置示例。同时,还展示了如何通过条件注解实现Bean的条件创建,以及如何切换Web服务器配置,从默认的Tomcat切换到Jetty。
|
3月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
86 1
|
5月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
2月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
31 2
|
2月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
195 8