1、配置Struts2:java
一、新建一个web项目,在src目录下新建com.st.bean/dao/service/action包,并在该包下面添加相应的接口及接口的实现类:web
a)、在bean下新建一个UserBean,包含userName、password、sex属性名,并添加set、get方法及toString方法。spring
b)、dao层新建UserDao接口,并添加该接口是实现类UserDaoIm:apache
1 public class UserDaoIm implements UserDao { 2 3 public UserBean queryUser(UserBean user) { 4 System.out.println("************"+user); 5 return user; 6 } 7 }
c)、在service层新建UserService接口,并添加该接口的实现类UserServiceIm:windows
1 package com.st.service; 2 3 import com.st.bean.UserBean; 4 import com.st.dao.UserDao; 5 6 public class UserServiceIm implements UserService { 7 8 UserDao dao; 9 public UserBean queryUser(UserBean user) { 10 System.out.println("------------------------"); 11 return dao.queryUser(user); 12 } 13 public void setDao(UserDao dao) { 14 this.dao = dao; 15 } 16 }
二、在lib下面引入Struts2所须要的jar包,在web.xml文件中添加Struts2的拦截器:浏览器
1 <!-- ********************************** --> 2 <filter> 3 <filter-name>struts2</filter-name> 4 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 5 </filter> 6 <filter-mapping> 7 <filter-name>struts2</filter-name> 8 <url-pattern>/*</url-pattern> 9 </filter-mapping> 10 <!-- ********************************** -->
三、复制一个struts.xml文件到src目录下,并编辑<package>标签中的类容:tomcat
1 <struts> 2 <package name="user" namespace="/user" extends="struts-default" > 3 <action name="userAction" class="com.st.action.UserAction" method="login"> 4 <result name="success">/main.jsp</result> 5 <result name="error">/index.jsp</result> 6 </action> 7 </package> 8 </struts>
四、新建一个lojin.jsp文件服务器
1 <body> 2 <form method="post" action="<%=request.getContextPath() %>/user/userAction" > 3 <table> 4 <tr> 5 <td>用户名:</td> 6 <td><input type="text" name="userName" value=""/></td> 7 </tr> 8 <tr> 9 <td>性 别:</td> 10 <td>男<input type="radio" name="sex" value="男"/> 女<input type="radio" name="sex" value="女"/></td> 11 </tr> 12 <tr> 13 <td>密 码:</td> 14 <td><input type="password" name="password" value=""/></td> 15 </tr> 16 <tr> 17 <td><input type="submit" value="登录"/></td> 18 <td><input type="reset" value="重置"/></td> 19 </tr> 20 </table> 21 </form> 22 </body>
五、新建一个main.jsp文件,<body>标签中的类容为:<body> 登录成功!<br> </body>。app
六、在action包中新建一个UserAction类(注意UserAction类要继承ActionSupport类,并实现ModelDriven接口):webapp
1 public class UserAction extends ActionSupport implements ModelDriven<UserBean>{ 2 private UserBean user; 3 UserService service ; 4 public String login(){ 5 System.out.println("--------------"+user); 6 return SUCCESS; 7 } 8 public void setService(UserService service) { 9 this.service = service; 10 } 11 public UserBean getModel() { 12 this.user = new UserBean(); 13 return user; 14 } 15 }
七、配置好tomcat服务器后,进入login.jsp页面后,点击登陆按钮,页面能成功跳转到man.jsp页面则表示Struts2已配置成功。
2、配置Spring:
一、将Spring须要的基本jar包引入到lib下面(注意宁少勿多的原则),将applicationContext.xml文件引入到src目录下面,并清空xml文件中原有的类容。在web.xml文件中添加下面的类容用来配置监听和加载applicationContext.xml文件:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 <display-name></display-name> 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 12 <context-param> 13 <param-name>contextConfigLocation</param-name> 14 <param-value> 15 <!-- 注意:多个 .xml 文件中间用逗号分开 --> 16 classpath:applicationContext.xml 17 </param-value> 18 </context-param> 19 <!-- ********************************** --> 20 <filter> 21 <filter-name>struts2</filter-name> 22 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 23 </filter> 24 <filter-mapping> 25 <filter-name>struts2</filter-name> 26 <url-pattern>/*</url-pattern> 27 </filter-mapping> 28 <!-- ********************************** --> 29 30 <!-- 监听 --> 31 <listener> 32 <listener-class> 33 org.springframework.web.context.ContextLoaderListener 34 </listener-class> 35 </listener> 36 </web-app>
二、编辑applicationContext.xml中的类容:
1 <bean id="userDao" class="com.st.dao.UserDaoIm"> 2 </bean> 3 <bean id="userService" class="com.st.service.UserServiceIm"> 4 <property name="dao" ref="userDao" /> 5 </bean> 6 <bean id="userAction" class="com.st.action.UserAction"> 7 <property name="service" ref="userService"/> 8 </bean>
三、如今由于有了Spring,因此UserAction这个类将由Spring的容器生成,因此在struts.xml文件中的UserAction这个类就直接可使用了,故修改struts.xml文件中的内容为:
1 <package name="user" namespace="/user" extends="struts-default" > 2 <!-- 注意:如今的class引用的是applicationContext.xml中的userAction --> 3 <action name="userAction" class="userAction" method="login"> 4 <result name="success">/main.jsp</result> 5 <result name="error">/index.jsp</result> 6 </action> 7 </package>
四、修改UserAction中的类容,使dao-service-action层之间存在联系(即模拟了一个用户登陆的过程):
1 public class UserAction extends ActionSupport implements ModelDriven<UserBean>{ 2 private UserBean user; 3 private UserService service ; 4 5 public String login(){ 6 service.queryUser(user); 7 return SUCCESS; 8 } 9 public void setService(UserService service) { 10 this.service = service; 11 } 12 13 public UserBean getModel() { 14 this.user = new UserBean(); 15 16 return user; 17 } 18 }
五、如今启动Tomcat服务器,他会报这样一个错误:
Caused by: Action class [userAction] not found - action - file:/D:/JAVA/JAVA/tomcat/tomcat-7.0.65-windows-x64/apache-tomcat-7.0.65/webapps/Spring_Struts2/WEB-INF/classes/struts.xml:9:68
即struts.xml文件中的第9行中找不到userAction这个类,这是由于Spring个Struts之间尚未创建相应的联系,这时引入一个“struts2-spring-plugin-2.1.8.1.jar”包(在Struts2里面有),即连接Spring的和Struts的支持包。这时在开启服务器,若是还有缺乏的jar包按照提示引入。
六、在浏览器中打开login.jsp页面,填写相应的登录信息后按登陆按钮,若是页面跳转成功,且在控制台打印了UserDaoIm中的提示信息,则表示Spring和Struts2的融合成功。
能够看下UserDaoIm中的类容为:
按登陆按钮后控制台打印的信息为: