JSF+Spring整合是什么原理?Struts集合Spring有三种方法,JSF呢?
解决方案 »
- cas spring security3整合爆错
- 有关tomcat的自动编译和Spring加载2次的问题.菜鸟求解
- 谁能提供一些JacORB的详细资料,中文的最好.网上有的那种简单配置就不用了,谢谢了.
- 帮兄弟找个工作,首月工资作感谢!!!
- 求spring+hibernate 完整例子
- Socket通讯时,正在接收数据时,无法同进发送数据???
- 在struts的框架下怎样将数据库中的多条数据读到struts页面呢?(在线等待,即刻给分)
- 谁有过用J2EE开发大型系统的经验?
- 需:Swing教材,Java类库参考手册,Java&XML教材 的ebook
- 请问一个关于ejb的问题,是关于entity的,谢谢大家
- tomcat和apache集成问题
- hibernate中jdbc和jndi连接哪个更有效率?
IOC用的比较多,达到用配置文件控制对象生成,
目的是达到在不修改代码的情况下,就可以进行功能扩展。AOP 面向方面编程, 控制调用方法前后执行,对数据库访问时候的事务处理可以用。
<lifecycle>
<phase-listener>
xxx.xxx.xxx.PhaseListener
</phase-listener>
</lifecycle>
--> <application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
<action-listener>xxx.xx.x.ControlActionListener</action-listener>
</application> <managed-bean>
<managed-bean-name>reportMetadata</managed-bean-name>
<managed-bean-class>xxxx..PresentReportMetadata</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>reportMetaDataBO</property-name>
<value>#{reportMetadataBO}</value>
</managed-property>
<managed-property>
<property-name>productDao</property-name>
<value>#{productDao}</value>
</managed-property>
<managed-property>
<property-name>rrdDao</property-name>
<value>#{rrdDao}</value>
</managed-property>
<managed-property>
<property-name>languageDao</property-name>
<value>#{languageDao}</value>
</managed-property>
<managed-property>
<property-name>converter</property-name>
<value>#{j2JSConverter}</value>
</managed-property>
<managed-property>
<property-name>servicesManager</property-name>
<value>#{servicesManager}</value>
</managed-property>
</managed-bean>
JSF里面自带有依赖注入功能.
要与Spring整合,只需引用Spring配置文件里面的beanid名字就行了.
不过在JSF配置文件里面引用spring实例的格式不是${} 而是#{},
然后在JSF配置文件里面还要配置:
<application>
<message-bundle>messages-override</message-bundle>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
</application>
举个例子:Spring配置文件application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="continent" class="cn.hana.pojos.Continent"></bean>
<bean id="country" class="cn.hana.pojos.Country"></bean>
<bean id="city" class="cn.hana.pojos.City"></bean>
<bean id="company" class="cn.hana.pojos.Company"></bean>
<bean id="line" class="cn.hana.pojos.Lines"></bean>
<bean id="service" class="cn.hana.pojos.Service"></bean>
<bean id="port" class="cn.hana.pojos.Port"></bean>
<bean id="vayage" class="cn.hana.pojos.Voyage"></bean>
<bean id="vayageschedule" class="cn.hana.pojos.Voyageschedule"></bean>
<bean id="vessel" class="cn.hana.pojos.Vessel"></bean>
</beans>JSF配置文件中的:
<?xml version='1.0' encoding='UTF-8'?>
<!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><managed-bean>
<managed-bean-name>vschedulebean</managed-bean-name>
<managed-bean-class>
cn.hana.beans.VoyageScheduleBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>selectedCompany</property-name>
<value>#{company}</value>
</managed-property> <managed-property>
<property-name>selectedCompanyIn3</property-name>
<value>#{company}</value>
</managed-property>
<managed-property>
<property-name>selectedVessel</property-name>
<value>#{vessel}</value>
</managed-property>
<managed-property>
<property-name>selectedLines</property-name>
<value>#{line}</value>
</managed-property>
<managed-property>
<property-name>selectedService</property-name>
<value>#{service}</value>
</managed-property> <managed-property>
<property-name>vscheduleServiceImpl</property-name>
<value>#{vscheduleserviceimpl}</value>
</managed-property>
<managed-property>
<property-name>voyage</property-name>
<value>#{vayage}</value>
</managed-property> <managed-property>
<property-name>voyageschedule</property-name>
<value>#{vayageschedule}</value>
</managed-property>
<managed-property>
<property-name>selectedPort</property-name>
<value>#{port}</value>
</managed-property>
<managed-property>
<property-name>selectedCountry</property-name>
<value>#{country}</value>
</managed-property>
</managed-bean>
<application>
<message-bundle>messages-override</message-bundle>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
</application>
</faces-config>