`

Struts2 part 2:Action的编写方式

 
阅读更多

  

Action的编写方式:

1、POJO对象

public class RequestAction {
	public String execute() {

		return "success";
	}
}

 2、实现Action接口

public class RequestAction2 implements Action {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}

 接口中定义了5种逻辑视图名称

public static final String SUCCESS = "success";  // 数据处理成功 (成功页面)
public static final String NONE = "none";  // 页面不跳转  return null; 效果一样
public static final String ERROR = "error";  // 数据处理发送错误 (错误页面)
public static final String INPUT = "input"; // 用户输入数据有误,通常用于表单数据校验 (输入页面)
public static final String LOGIN = "login"; // 主要权限认证 (登陆页面)

3、继承ActionSupport类

public class RequestAction3 extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}

 这种方式更为常用,ActionSupport实现了表单校验、错误信息设置、读取国际化信息 三个功能

public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {}

 

 Action中的方法调用

1、通过mehtod属性配置

链接 

	<a href="${pageContext.request.contextPath }/demo03/regist.action">注册</a>

编写Action类,采用继承ActionSupport这种方式

public class RegistAction extends ActionSupport {
	@Override
	public String execute() throws Exception {
		System.out.println("RegistAction--execute()");
		return NONE;
	}

	public String regist() {
		System.out.println("RegistAction--regist()");
		return NONE;
	}
}

 struts配置

<package name="demo03" namespace="/demo03" extends="struts-default">
		<action name="regist" class="demo03.RegistAction"  method="regist">
		</action>
	</package>
 如果不配置method属性,将默认执行execute方法,如果配置就执行regist方法,通过这种方式可以将多个业务方法封装到一个Action中,但配置文件并没有减少,要在struts.xml中配置多个<action>

 

 2、使用通配符

链接

	<a href="${pageContext.request.contextPath }/demo03/customer_add.action">新增</a>
	<a href="${pageContext.request.contextPath }/demo03/customer_upd.action">修改</a>
	<a href="${pageContext.request.contextPath }/demo03/customer_del.action">删除</a>

 action类

public class CustomerAction extends ActionSupport {
	public String add() throws Exception {
		System.out.println("CustomerAction--add()");
		return NONE;
	}

	public String upd() throws Exception {
		System.out.println("CustomerAction--upd()");
		return NONE;
	}

	public String del() throws Exception {
		System.out.println("CustomerAction--del()");
		return NONE;
	}
}

 配置

<package name="demo03" namespace="/demo03" extends="struts-default">
		<action name="customer_*" class="demo03.CustomerAction" method="{1}">
		</action>
	</package>

 通过customer_*这种方式简化配置,在method中使用{数字}来调用action中的方法,这是action的命名就必须规范

 使用两个通配符

//jsp
<a href="${pageContext.request.contextPath }/demo03/AAAAction_add.action">删除</a>
//action
public class AAAAction extends ActionSupport {
	public String add() {
		return NONE;
	}
}
//struts配置
<action name="*Action_*" class="demo03.{1}Action" method="{2}">
		</action>

 3、动态方法调用

在struts.xml配置常量,开启动态方法调用

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

 页面链接,使用"!方法名称"的方式调用action中方法

	<a href="${pageContext.request.contextPath }/demo03/customer!add.action">新增</a>
	<a href="${pageContext.request.contextPath }/demo03/customer!upd.action">修改</a>
	<a href="${pageContext.request.contextPath }/demo03/customer!del.action">删除</a>

 action类

public class ProductAction extends ActionSupport {
	public String add() throws Exception {
		System.out.println("CustomerAction--add()");
		return NONE;
	}

	public String upd() throws Exception {
		System.out.println("CustomerAction--upd()");
		return NONE;
	}

	public String del() throws Exception {
		System.out.println("CustomerAction--del()");
		return NONE;
	}
}

 配置,不用配置method,也不用通配符,这种方式结合注解,struts可以近乎于零配置

	<action name="product" class="demo03.ProductAction">

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    Spring in Action中文版 清晰pdf part2

    附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必...

    Spring in Action(第二版 中文高清版).part2

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    Spring in Action(第二版 中文高清版).part1

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    Spring in Action中文版 清晰pdf part1

    附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必...

    李兴华Java Web开发实战经典(高清版) Part2

    17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail...

    外文翻译 stus MVC

    ActionServlet is the Command part of the MVC implementation and is the core of the Framework. ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail简介及配置...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail...

Global site tag (gtag.js) - Google Analytics