struts2的Action实现三种使用方式
第一种方式,不实现Action接口
public class UserAction2 {
public String login()throws Exception{
System.out.println("UserAction2.login()");
return "success";
}
}
第二种方式:实现Action接口
/** 1)定义了默认的execute方法的标准
* 2)提供了项目中常用的视图标记 */
public class UserAction implements Action {
public String login() throws Exception {
System.out.println("执行了UserAction的login方法");
return SUCCESS;
}
public String execute() throws Exception {
return null;
}
}
第三种方式: 继承ActionSupport类(推荐使用)
/* * 1)提供了常用的视图标记
* 2)提供了数据校验功能 */
public class UserAction3 extends ActionSupport{
public String login()throws Exception{
System.out.println("UserAction3.login()");
return SUCCESS;
}
}
路径通配符:可以只配置一个action来匹配多个要执行的方法
一个模块(Action对象)使用一个action配置
<action name="user_*" class="com.example.UserAction" method="{1}">
<result name="{1}">/{1}.jsp</result>
</action>
* (星号) :表示路径的通配符,在配置文件中会自动替换成匹配成功的请求路径中对应的字符串
{1}:表示获取第一个通配符的实际内容,下面以{1}匹配的内容为方法名,jsp文件名
多个模块使用一个action配置
如果*_*匹配User_login. 则第一个*代表模:User,第二个*代表方法:login. /{1}/{2}.jsp表示 /User/login.jsp
<action name="*_*" class="com.example.{1}Action" method="{2}">
<result name="{2}">/{1}/{2}.jsp</result>
</action>