Spring+JSF集成入门案例

来源:互联网 发布:尼布楚条约知乎 编辑:程序博客网 时间:2024/05/18 09:10

欢迎访问北大青鸟大连鑫鼎中心 www.0411bdqn.com

 

JSF本身对于Bean的管理有依赖注入的功能,不过Spring的IOC容器能提供更多的功能,另一方面Spring还有AOP框架,在事务处理上也可提供协助

JSF 和Spring结合,主要目的就是让Spring的Bean名称可以被JSF视<managed-bean-name>标签上的名称来使用,也就是说可以当JSF定义文件中根据名称要求Bean实例时,若JSF 在自己的Context中找不到名称,可以尝试到Spring的Context中去寻找.

---------------------------------------------------------------------JSF配置文件

<managed-bean>
    <description>
      The "backing file" bean that backs up the guessNumber webapp
    </description>
    <managed-bean-name>UserNumberBean</managed-bean-name>
    <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>minimum</property-name>
      <property-class>int</property-class>
      <value>1</value>
    </managed-property>
    <managed-property>
      <property-name>maximum</property-name>
      <property-class>int</property-class>
      <value>10</value>
    </managed-property>
<managed-property>
      <property-name>rnManager</property-name>
      <value>#{randomNumManager}</value>
    </managed-property>

</managed-bean>

---------------------------------------------------------------------Spring配置文件

    <bean id="randomNumManager" class="guessNumber.RandomNumManager">
    </bean>

    <bean id="UserNumberBean" class="guessNumber.UserNumberBean">
    <property name="minimum" value="1"></property>
    <property name="maximum" value="10"></property>
    <property name="rnManager" ref="randomNumManager"></property>
    </bean>

集成后上述JSF配置文件中可以放到spring配置文件中做配置。

%%%%%配置要点

1-- Spring配置文件

<application>
   <variable-resolver>
    org.springframework.web.jsf.DelegatingVariableResolver
   </variable-resolver>
</application>

实际上在JSF的定义文件中并没有定义UserNumberBean的bean实例,当JSF找不到UserNumberBean时候,会使用DelegatingVariableResolver对象在Spring的Context中寻找同名的bean实例

2--web.xml

<listener>
   <listener-class>
    org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<context-param>
   <param-name>javax.faces.CONFIG_FILES</param-name>
   <param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>

3--jar包及其他

建议使用spring2..5相应库文件及Tomcat6

原创粉丝点击