spring+hibernate+struts整合(2)

spring和struts2的整合

1:配置Web.xml文件

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
   </filter-mapping>

2:配置struts.xml文件。

在源码根目录下新建一个struts.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

 <struts>

<!--     指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<!--    <constant name="struts.i18n.encoding" value="UTF-8"/>-->
<!--    -->
<!--   -->
<!--     该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。-->
<!--    如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
<!--    <constant name="struts.action.extension" value="do"/>-->
<!--     设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<!--    <constant name="struts.serve.static.browserCache" value="false"/>-->
<!--     当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<!--    <constant name="struts.configuration.xml.reload" value="true"/>-->
<!--     开发模式下使用,这样可以打印出更详细的错误信息 -->
<!--    <constant name="struts.devMode" value="false" />-->
<!--      默认的视图主题 -->
<!--    <constant name="struts.ui.theme" value="simple" />-->
    
    <constant name="struts.objectFactory" value="spring" />
    
     <package name="user" namespace="/user" extends="struts-default">
        <action name="userlist" class="userAction" method="userList">
            <result name="list">/WEB-INF/user/userList.jsp</result>
        </action>
    </package>
</struts>

需要说明的是上述文件中的class中的userAction是需要在bean.xml中配置的,正式由于我之前没有配,导致了一个让我纠结了几天的问题。

3:配置bean.xml文件

我的理解是这样的,如果你想把某个东西交给spring管理,就必须要在bean.xml中配置。这样spring才能够识别。

    <!-- 注册Action -->
    <bean id="userAction" class="com.test.action.UserAction" scope="prototype"/>    
    
    <!-- 注册 Interface-->
    <bean id="userService" class="com.test.implement.userServiceBean"/>

 

4:编写action

@Controller 
public class UserAction {

    @Resource private userService userservice;
    
    public String userList()
    {
        ActionContext.getContext().put("users", userservice.getAll());    
        return "list";
    }
//    
    public String execute()
    {
        return "list";
    }
}

因为这里,我将UserAction 和userService 交给spring 管理了,所以在上面的bean.xml中我需要配置。

 

到这里,spring和struts的整合基本完成。

 

posted @ 2013-09-23 08:56  shenghaishiweini  阅读(210)  评论(0编辑  收藏  举报