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 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必...
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...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
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...
附录A介绍如何开始自己的Spring应用系统,如何下载Spring以及如何编写Ant配置文件。附录B介绍一些与Spring有关的其他开源框架。本书的每一部分既是建立在前一部分的基础上,同时也都是独立存在的,所以,读者不必...
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...
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, ...
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简介及配置...
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...
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...