Action创建四种方式

Action创建四种方式

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>    
原文地址:https://www.cnblogs.com/webmark2016/p/7123542.html