Struts2 与 Spring 的整合

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

开发环境: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>

最后修改于 2012-09-06