1、创建一个pojo类
这个可以参考第一篇博客,创建的简单登录校验
pojo其实就是一个简单的java类
它没有实现任何接口,也没有继承任何类。
优点:无耦合
适用于逻辑相对简单的action
1 package com.xsl.action; 2 //Struts2任何一个普通的Java类都可以成为Action 3 public class TestAction1 { 4 public String execute(){ 5 System.out.println("struts2创建action的第1种方式。"); 6 return "success"; 7 } 8 }
2、实现Action接口
com.opensymphony.xwork2.Action
这个接口里有五个常量属性和一个方法
属性:
success:成功视图
none:代表返回null,不做任何操作(跳转操作也不会做)
error:错误视图
input:这是struts2框架中interceptor中发现问题后会访问的一个视图
login:一个登录视图,可用于权限操作
方法:
execute:将要执行的方法,需要重写此方法,
index.jsp页面:<a href="testAction2">struts2创建action的第2种方式</a><br> struts.xml里: 复制代码 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 5 <package name="xsl" namespace="/" extends="struts-default"> 6 7 <action name="testAction2" class="com.xsl.action.TestAction2"> 8 <result name="success">/success.jsp</result> 9 </action> 10 11 </package> 12 13 </struts>
TestAction2.java里:(继承Action类) 1 package com.xsl.action; 2 3 import com.opensymphony.xwork2.Action; 4 5 public class TestAction2 implements Action { 6 7 public String execute() throws Exception { 8 System.out.println("struts2创建action的第2种方式。"); 9 return SUCCESS; 10 } 11 12 }
3、继承ActionSupport类
com.opensymphony.xwork2.ActionSupport
此类也实现了Action接口
因为它具有丰富的功能,如表单校验 错误信息 设置国际化等,所以常在开发中使用,但也同样有高耦合的问题
index.jsp页面:<a href="testAction3!test1">struts2创建action的第3种方式</a><br> struts.xml里: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 5 <package name="xsl" namespace="/" extends="struts-default"> 6 7 <action name="testAction3" class="com.xsl.action.TestAction3"> 8 <result name="success">/success.jsp</result> 9 </action> 10 11 </package> 12 13 </struts>
TestAction3.java里:(继承ActionSupport类) 1 package com.xsl.action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class TestAction3 extends ActionSupport { 6 public String test1(){ 7 System.out.println("struts2创建action的第3种方式。"); 8 return SUCCESS; 9 } 10 }
第四种方式:
index.jsp页面:<a href="testAction3_1">struts2创建action的第3.1种方式</a><br>
struts.xml里:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
3 <struts>
4
5 <package name="xsl" namespace="/" extends="struts-default">
6
7 <action name="testAction3_1" class="com.xsl.action.TestAction3" method="test1">
8 <result name="success">/success.jsp</result>
9 </action>
10
11 </package>
12
13 </struts>