JAVA项目开发笔记(5)框架的融合部分:JSF和Spring

本文介绍了如何将JSF与Spring框架进行整合,包括配置JSF的faces-config.xml文件以使用Spring的业务逻辑,并解释了为何选择Spring而非仅依赖JSF进行依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 转载请注明出处(Cooper的专栏    http://blog.youkuaiyun.com/cooper_lyt

由于JSF和Spring都支持IOC(依赖注入或反转控制)  所以JSF和Spring的融合还是很简单。可能有人会问即然JSF都支持IOC那么为什么还要用Spring呢,有以下几个原因:

1.从分层上来说Spring是业务层,主要用来写业务逻辑,而JSF是表示层,主要用来写显示逻辑,所以还是分开的好。

2.从IOC的功能来说Spring 中所有的Bean都是一个单件模式,也说是说所有的Bean只有一份而且生命周期也比较长,而JSF的IOC只是在由用户访问时才实例化(生命周期的范围可以设置),所以不符合我们写业务逻辑的要求

3.从功能上来说Spring不仅提供了IOC功能,还提供了AOP、声明式事务等JSF 所没有而我们的项目所需要的功能。

 

要让JSF使用Spring的业务逻辑方法如下

1.在JSF的配置文件faces-config.xml中添加以下代码(message部分是JSF的国际化,可以参考我于与jsf的文章):

  1.     <application>
  2.         <variable-resolver>
  3.             org.springframework.web.jsf.DelegatingVariableResolver
  4.         </variable-resolver>
  5.         <message-bundle>messages</message-bundle>
  6.         <locale-config>
  7.             <default-locale>en</default-locale>
  8.             <supported-locale>zh_CN</supported-locale>
  9.             <supported-locale>en_US</supported-locale>
  10.         </locale-config>
  11.         <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
  12.     </application>

2.在JSF的配置文件faces-config.xml中引用Spring的业务Bean:(其中worksMgrImpl和worksImpl是在Spring中声明的业务Bean)

  1.     <managed-bean>
  2.         <managed-bean-name>mainBean</managed-bean-name>
  3.         <managed-bean-class>
  4.             com.dgsoft.fc.jsf.backBean.MainBean
  5.         </managed-bean-class>
  6.         <managed-bean-scope>session</managed-bean-scope>
  7.         <managed-property>
  8.             <property-name>works</property-name>
  9.             <value>#{worksImpl}</value>
  10.         </managed-property>
  11.         <managed-property>
  12.             <property-name>workMgr</property-name>
  13.             <value>#{worksMgrImpl}</value>
  14.         </managed-property>
  15.     </managed-bean>

转载请注明出处(Cooper的专栏    http://blog.youkuaiyun.com/cooper_lyt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值