spring将service注入到Action中(s1和s2)

[b][color=red][align=center][size=x-large]spring将service注入到Action中[/size][/align][/color][/b]


[size=x-large][color=green][b]spring与struts1.x集成[/b][/color][/size]
[size=medium][b][color=red]方式一:Action交给spring管理,将业务类注入action[/color][/b][/size]         
引入[b][color=green]spring-webmvc-struts.jar包[/color][/b]到lib下,
struts-config.xml配置:

<action name="StudentForm" path="/StudentList"
parameter="actions"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="list" path="/userList.jsp"/>
</action>

 
spring配置applicationContext.xml:

<bean name="/StudentList" class="com.org.momo.action.StudentAction" scope="prototype">
<property name="studentService" ref="studentService" />
</bean>

[color=red]注意:保持spring配置的bean name和struts配置的action path一致[/color]

StudentAction.java:
private StudentService studentService ;	
public StudentService getStudentService() {
return studentService;
}
public void setStudentService(StudentService studentService) {
this.studentService = studentService;
}


注意:加入上面applicationContext.xml里面的action移到applicationContext-action.xml里面时,
1.需在sturts-config.xml配置applicationContext-action.xml加载路径

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="classpath*:applicationContext-struts.xml" />
</plug-in>
 


[size=medium][color=red][b]方式二:请求首先交给ActionServlet,然后给org.springframework.web.struts.DelegatingRequestProcessor[/b][/color][/size],由这个请求处理器根据请求路径从spring容器获取action对象
 
struts-config.xml:
 
<action path="/searchAction">          
<!--注意到没有?这里没有配置type属性-->
<forward name="success" path="/result.jsp"/>
</action>
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>


spring配置applicationContext.xml:     
<bean name="/searchAction" class="com.myproject.action.SearchAction" scope="prototype">
<property name="searchService" ref="searchService"/>
</bean>
 
 
      
[size=medium][color=red][b]方式三:Action不交给spring管理,直接在Action中实例化应用上下文[/b][/color][/size],然后通过getBean("xxx"),获取相应业务对象
struts配置struts-config.xml:
<action path="/searchAction"  type="com.myproject.action.SearchAction">  
<forward name="success" path="/result.jsp"/>
</action>

<action path="/searchAction" type="com.myproject.action.SearchAction">
<forward name="success" path="/result.jsp"/>
</action>


 
对应的Action处理类:

Actionprivate ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());   
SearchService searchService=(SearchService)context.getBean("searchService");
private ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
SearchService searchService=(SearchService)context.getBean("searchService");
 
 
  
 
[size=x-large][b][color=green]struts2.x与spring集成[/color][/b][/size] 
struts.properties 配置
struts.objectFactory=spring        #指定struts的action类实例由spring生成
 
struts-config.xml配置       
<action name="search" class="searchAction" method="searchMax">  
<result name="success">/result.jsp</result>
<result name="error">/error.jsp</result>
</action>
  
      
spring配置文件applicationContext.xml:                 
<bean id="searchAction" class="com.myproject.action.SearchAction" scope="prototype">  
<property name="searchService" ref="searchService"/>
</bean>

<action name="search" class="searchAction" method="searchMax">
<result name="success">/result.jsp</result>
<result name="error">/error.jsp</result>
</action>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值