spring+hibernate+struts整合(2)

时间:2023-03-10 04:27:26
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的整合基本完成。