JSF和Spring整合

         JavaServer Faces (JSF) 是一个基于组件的事件驱动框架。JSF 的组件集包含一个事件发布模型、一个轻量级的 IOC 容器和很多用于几乎所有其他公共 GUI 特性的组件,这些特性包括可插入呈现、服务器端验证、数据转换、页面导航管理等等,在某些场景下,将JSF与Spring进行集成是有意义的。

由于JSF与Spring均遵循Servlet,因此二者的集成是非常简单的。JSF与Spring进行集成的关键类是DelegatingVariableResolver。

为了在JSF应用程序中配置这个解析器,需要修改JSF的faces-context.xml文件。在<faces-config>元素中增加<application>和<variable-resolver>元素,而其中<variable- resolver>的值必须引用Spring的DelegatingVariableResolver。示例如下:

  1.     <faces-config>
  2.         <application>
  3.             <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>          <locale-config>
  4.                 <default-locale>zh_CN</default-locale>
  5.                 <supported-locale>en</supported-locale>
  6.                 <supported-locale>zh_CN</supported-locale>
  7.             </locale-config>
  8.             <message-bundle>messages</message-bundle>
  9.         </application>
  10.     </faces-config>

DelegatingVariableResolver类将首先在JSF实现中查找缺省的解析器,其后在Spring的WebApplicationContext中去查找,从而开发人员可以通过配置文件将对象依赖注入到JSF管理的bean。被管理的bean定义在faces-config.xml文件内。下例说明了如何从Spring的业务环境中检索名为#{userManager}的bean:

  1.     <managed-bean>
  2.         <managed-bean-name>userList</managed-bean-name>
  3.         <managed-bean-class>com.example.jsf.UserList</managed-bean-class>
  4.         <managed-bean-scope>request</managed-bean-scope>
  5.         <managed-property>
  6.           <property-name>userManager</property-name>
  7.           <value>#{userManager}</value>
  8.         </managed-property>
  9.     </managed-bean>


此外需要在web.xml配置文件中加入JSF框架的配置如下代码:

  1. <listener>
  2.     <listener-class>org.springframework.web.context.                                               ContextLoaderListener</listener-class>
  3. </listener>
  4. <context-param>
  5.     <param-name>javax.faces.CONFIG_FILES</param-name>
  6.     <param-value>/WEB-INF/faces-config.xml</param-value>
  7. </context-param>
  8. <context-param>
  9.     <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  10.     <param-value>client</param-value>
  11. </context-param>
  12. <servlet>
  13.     <servlet-name>Faces Servlet</servlet-name>
  14.     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  15.     <load-on-startup>1</load-on-startup>
  16. </servlet>
  17. <servlet-mapping>
  18.     <servlet-name>Faces Servlet</servlet-name>
  19.     <url-pattern>*.jsf</url-pattern>
  20. </servlet-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值