今天倒腾了半天,终于是把这个两个框架整合到一起了。还是要写一下总结,同时给大家一些帮助。

开发环境:myeclipse 9.0(不好用!)tomcat6.0

1.准备工作

需要导入的包:struts2与spring基本的包就不用说了,我用的是struts2.1  Spring 3.0,

尤其要注意 别少导入的几个是:Spring3.0 Web Libraries  ;

struts支持spring的插件:struts2-spring-plugin-2.1.8.1.jar  将这个jar文件放到lib目录下

2.web.xml 的配置

除了struts2的核心配置外,我们还要加入spring的配置,代码如下:

<!--指明spring配置文件的位置!-->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:applicationContext*.xml</param-value>

</context-param>

<!-加载spring的配置文件!-->

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>


注:如果你在运行的时候发现有no found class org.springframework.web.context.LoaderListener 的异常 ,那你要注意你的Spring3.0 Web 包的导入了


3.application.xml 的配置

<beans>

<bean id="userService" class="com.test.service.UserServiceImpl"></bean>

<bean id="userAction" class="com.test.action.UserAction">

       <property name="userService">

         <ref bean="userService"/>

      </property>

</bean>

</beans>


4.UserAction 类 这个不用多说,注意的是userService 属性的getter 和 setter 方法

public class UserAction {
    
    private User user = new User();
    
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    
    private UserService userService;
    
    public UserService getUserService() {
        return userService;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    public String checkLogin(){
        
        if(userService.checkLogin(user))
        {
                System.out.println("ok");
        }else
                System.out.println("sorry");
        
            return "succ";
    }

}


5.struts.xml 的配置,把原先class的路径换成spring中配置action的bean 的id

<struts>
<package name="test" extends="struts-default">
    <action name="login" class="userAction" method="checkLogin">
        <result name="succ">index.jsp</result>
    </action>
</package>
</struts>