struts2在SSH项目中的配置文件

用struts2+Spring3+hibernate3开发,struts.xml文件的配置

第一步:导包。导入struts的各种jar包


这里需要说的是用的是eclipse开发,除了导入struts的核心包之外,因为要与spring整合,需要struts2-spring-plugin-2.2.1.1.jar

需要在action中使用servlet,需要导入 servlet-api.jar包

需要在jsp中使用EL的C标签,导入jstl.jar

需要json,导入json_simple1.1.jar  gson-1.7.1.jar

需要连接mysql,导入mysql-connector-java-5.1.12-bin.jar(这是突然想到了,就写上了)

第二步,写web.xml文件

下面的配置是spring管理hibernate,支持懒加载,这个必须放在struts配置的上面,否则懒加载失败
<!-- OpenSessionInview 支持hibernate的懒加载-->
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

然后是,struts配置,在spring的配置文件之后(不知道有没有顺序,老师是这么写的)
<!-- struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


第三步,写struts.xml文件


可以有多个<package>,继承自strut-default,命名空间可写可不写。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="mypackage"  extends="struts-default">
<!-- struts2中,action交给Spring管理后,class属性值要改为Spring中配置的id -->
<!-- 登录 -->
<action name="login" class="loginAction" method="login">
<result type="redirectAction" name="success">
<param name="actionName">manageList</param>
<param name="input">login.jsp</param>
</result>
<result type="redirect" name="input">login.jsp?err=001</result>
</action>

</package>
<!--  struts2对json的支持继承自json-default
<package name="json" extends="json-default">
<action name="findSecon" class="blogAction" method="findSeconBlog">
<result type="json"></result>
</action>
</package>
-->
</struts>


第四,写action类

public class BlogAction extends ActionSupport
                        implements sessionAware,ServletRequestAware,ServletResponseAware{

继承自ActionSupport类,如果需要session、request、response的话,可以实现sessionAware、ServletRequestAware、ServletResponseAware三个接口。
当然还有applicationAware(private Map<String,Object> application)这个貌似也是假的application。

注意:有没有Servlet。

其中,private Map<String, Object> session; 可以实现session的效果而不用与httpSession耦合。如果真要用HttpSession可以这样取得HttpSession对象:
HttpSession session = ServletActionContext. getRequest().getSession();

Http的request、response对象可以这样取得:
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);

HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);

差点忘了,第五步:配置struts.properties文件

这里可以修改Action的后缀,配置上传文件的临时文件夹、等

### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data
# struts.multipart.parser=cos
# struts.multipart.parser=pell
  struts.multipart.parser=jakarta
# uses javax.servlet.context.tempdir by default
struts.multipart.saveDir=c:\\temp
# -1 nolimit
#struts.multipart.maxSize=-1
struts.action.extension=jspx,action

你可能感兴趣的:(struts2)