用struts2+Spring3+hibernate3开发,struts.xml文件的配置
[size=large][color=green]
第一步:导包。导入struts的各种jar包[/color][/size]
这里需要说的是用的是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(这是突然想到了,就写上了)
[color=green][size=large]第二步,写web.xml文件[/size][/color]
下面的配置是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>
[color=green][size=large]
第三步,写struts.xml文件[/size][/color]
可以有多个<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>
[size=large][color=green]第四,写action类[/color][/size]
public class BlogAction extends ActionSupport
implements sessionAware,ServletRequestAware,ServletResponseAware{
继承自ActionSupport类,如果需要session、request、response的话,可以实现sessionAware、ServletRequestAware、ServletResponseAware三个接口。
当然还有applicationAware(private Map<String,Object> application)这个貌似也是假的application。
[color=red]注意:有没有Servlet。[/color]
其中,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);
[size=large][color=green]差点忘了,第五步:配置struts.properties文件[/color][/size]
这里可以修改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
[size=large][color=green]
第一步:导包。导入struts的各种jar包[/color][/size]
这里需要说的是用的是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(这是突然想到了,就写上了)
[color=green][size=large]第二步,写web.xml文件[/size][/color]
下面的配置是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>
[color=green][size=large]
第三步,写struts.xml文件[/size][/color]
可以有多个<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>
[size=large][color=green]第四,写action类[/color][/size]
public class BlogAction extends ActionSupport
implements sessionAware,ServletRequestAware,ServletResponseAware{
继承自ActionSupport类,如果需要session、request、response的话,可以实现sessionAware、ServletRequestAware、ServletResponseAware三个接口。
当然还有applicationAware(private Map<String,Object> application)这个貌似也是假的application。
[color=red]注意:有没有Servlet。[/color]
其中,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);
[size=large][color=green]差点忘了,第五步:配置struts.properties文件[/color][/size]
这里可以修改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