现在的位置: 首页 > 综合 > 正文

体现了struts+spring

2012年11月27日 ⁄ 综合 ⁄ 共 3050字 ⁄ 字号 评论关闭

gcgan 写道:
struts.xml
 

   1. xml version="1.0" encoding="UTF-8" ?>  
   2.
   3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
   4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
   5.   
   6. <struts>  
   7.   
   8.     <include file="struts-default.xml" />  
   9.   
  10.     <package name="default" extends="struts-default">  
  11.         <default-interceptor-ref name="completeStack" />  
  12.   
  13.         <global-results>  
  14.             <result name="login" type="redirect">login!default.actionresult>  
  15.             <result name="unauthorized">unauthorized.jspresult>  
  16.         global-results>  
  17.            
  18.         <action name="login" class="com.baseframe.action.LoginAction">  
  19.             <result name="input">login.jspresult>  
  20.             <result name="success">main.jspresult>  
  21.             <result name="error">login.jspresult>  
  22.         action>  
  23.         <action name="logout" class="com.baseframe.action.LogoutAction">  
  24.             <result name="success">login.jspresult>  
  25.         action>  
  26.     package>  
  27.   
  28. struts>  

 

<action></action>的class是用的类如:com.baseframe.action.LoginAction,请问什么地方体现了struts+spring呢?
我觉得是不是应该用spring的bean来代替类呢?

spring的bean应该在action中调用,在LoginAction中应该包含类似如下的代码:

 private EmployeeService employeeService;
 public void setEmployeeService(EmployeeService employeeService) {
      this.employeeService = employeeService;
 }

这个EmployeeService才是spring的bean
只要你再struts.properties文件中设定了struts.objectFactory = spring,加入struts2-spring-plugin-2.0.6.jar就可以了

 

======================

这样搭配似乎美中不足。既然你选择了SPRING作为IOC容器,那么你的ACTION也应该被SPRING的IOC管理
更正

WEB.XML添加

Java代码

   1. <listener> 
   2.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
   3. </listener>   <listener> 
   4.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
   5. </listener> 

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

Spring配置文件添加

Java代码

   1. <bean id="LoginAction" class="com.baseframe.action.LoginAction"/>    
   2. <bean id="LogoutAction" class="com.baseframe.action.LogoutAction"/>  

       <bean id="LoginAction" class="com.baseframe.action.LoginAction"/>  
       <bean id="LogoutAction" class="com.baseframe.action.LogoutAction"/>

最后struts.xml配置文件改下
Java代码

   1.  <action name="login" class="LoginAction">    
   2.     <result name="input">login.jspresult>    
   3.     <result name="success">main.jspresult>    
   4.     <result name="error">login.jspresult>    
   5. action>    
   6. <action name="logout" class="LogoutAction">    
   7.     <result name="success">login.jspresult>    
   8. action>    

         <action name="login" class="LoginAction">  
            <result name="input">login.jspresult>  
            <result name="success">main.jspresult>  
            <result name="error">login.jspresult>  
        action>  
        <action name="logout" class="LogoutAction">  
            <result name="success">login.jspresult>  
        action>  

这样容器管理就交给SPRING好了。

抱歉!评论已关闭.