action的编写方式和多方法调用

分类: 完美365体育官方网站 时间: 2025-06-29 01:27:54 作者: admin 阅读: 5456 点赞: 396
action的编写方式和多方法调用

1.Action的编写方式(3种形式): (1).支持使用POJO来做Action.(不推荐使用) 优点:和Struts2解除耦合. 缺点: 元素配置,method属性默认值就是execute. 但是写不对该方法,编译不报错. Action的请求方法中,最终得返回一个逻辑视图名(String类型). 会造成不同Action编写者的随意性.

为了解决上述问题,Apache 定义了编写Action的规范:形式2:

public class Action{ public static final String SUCCESS = "success"; public static final String NONE = "none"; public static final String ERROR = "error"; public static final String INPUT = "input"; public static final String LOGIN = "login"; public String execute() throws Exception; }

(2).定义一个类实现于com.opensymphony.xwork2.Action接口.(不推荐使用) public class LoginAction implements Action{ public String execute() throws Exception{ return SUCCESS; } } (3).上述解决方案不错哦,但是,不支持数据校验,文本信息设置,国际化等功能. 所以开发中: 定义一个了继承于com.opensymphony.xwork2.ActionSupport类 public class LoginAction extends ActionSupport{ public String execute() throws Exception{ return SUCCESS; }

}

2.Action中多方法的调用: 1.动态方法调用:DMI 请求的时候: actionName !方法名 指定调用Action哪个方法 默认情况下DMI是关闭的.要使用先配置支持动态方法调用的常量:

例如:struts.xml没有指定method属性但是product!add.action 就会执行ProductAction的add方法 官方是不推荐使用. 默认是关闭(false)的 2.通配符形式访问:*

在class、method属性及子元素中通过 {N} 形式代表前面地N个* 匹配子串

*_*代表匹配两个字符串 {1} 匹配UserAction 用于执行class {2} 匹配login用于指定method执行方法 和结果页面

总结: 使用通配符 *: 0到N个字符 {1}:表示第一个*的值. {2}:表示第二个*的值.

相关推荐