struts2.0与struts1.0运用了不同的框架,有一定的不兼容性。
struts2.0借鉴了webwork的框架思想。
Struts2的基本步骤:
1、拷贝struts的jar到项目中(导包);
2、将struts2的过滤器添加到web.xml中;
3、配置struts2的配置文件(在src目录中创建struts.xml文件);
4、创建action(就是一个干净的POJO类);
4.1 、为action编写execute方法(创建相应的方法);
4.2、在struts.xml中配置action和返回结果集;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 <package name="default" namespace="/" extends="struts-default"> 8 <action name="hello" class="com.it.action.HelloAction"> 9 <result name="success">/hello.jsp</result> 10 //默认访问的是execute()方法 11 </action> 12 13 </package> 14 </struts>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <!-- 2 对一个action配置多个方法对应,减少了action类的的数量,仍旧无法减少配置的数量 3 地址栏输入:http://localhost:8080/Struts/user_addInput 即可 4 <action name="user_addInput" class="com.it.action.UserAction" method="addInput"> 5 <result name="success">/addInput.jsp</result> 6 </action> 7 <action name="user_add" class="com.it.action.UserAction" method="add"> 8 <result name="success">/WEB_INF/add.jsp</result> 9 </action> 10 <action name="user_list" class="com.it.action.UserAction" method="list"> 11 <result name="success">/WEB_INF/user/list.jsp</result> 12 </action> 13 -->
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.it.action; 2 3 public class UserAction { 4 public String addInput(){ 5 System.out.println("add Input!"); 6 return "addInput"; 7 } 8 public String add(){ 9 System.out.println("add=="); 10 return "add"; 11 } 12 public String list(){ 13 System.out.println("list---"); 14 return "list"; 15 } 16 } 17 18 <!-- 19 ============================== 20 以下方法就写一个action,之后通过在调用的时候确定方法 21 地址栏输入:http://localhost:8080/Struts/user!addInput 22 很不明白为什么是"!"号 23 --> 24 25 <action name="user" class="com.it.action.UserAction" > 26 <result name="addInput">addInput.jsp</result> 27 <result name="add">/WEB_INF/add.jsp</result> 28 <result name="list">/WEB_INF/user/list.jsp</result> 29 </action>
1 <!-- 2 ============================ 3 基于通配符的方式 4 http://localhost:8080/Struts/User_list.action 5 --> 6 <action name="*_*" class="com.it.action.{1}Action" method="{2}" > 7 <result >/{1}/{2}.jsp</result> 8 <!-- 9 UserAction中的add里边return "r_list";用下边的配置,就可以让User_add也跳转到/User/list.jsp页面 10 --> 11 <result type="redirect" name="r_list">/{1}_list</result> 12 13 </action>
1 <!-- 通过配置constant的方法来重置默认选项 --> 2 <constant name="struts.action.extension" value="action,do,df"/> 3 <constant name="struts.configuration.xml.reload" value="true"/>
对此,遗留问题有访问不到/WEB_INF/*.jsp(如:/WEB_INF/add.jsp)的问题。tomcat8下边