欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

struts2之3--Action类的包装

程序员文章站 2022-07-23 20:19:18
1  :直接让上面的action去实现struts2框架action接口。里面会提供几个常量和一个抽象的execute方法。以下就是struts2提供的action接口。 //定义5个字符...

1  :直接让上面的action去实现struts2框架action接口。里面会提供几个常量和一个抽象的execute方法。以下就是struts2提供的action接口。
//定义5个字符串常量,统一返回值。主要的作用是 规范返回值。
public abstract interface com.opensymphony.xwork2.action {
 
  // field descriptor #4 ljava/lang/string;
  public static final java.lang.string success = "success";
 
  // field descriptor #4 ljava/lang/string;
  public static final java.lang.string none = "none";
 
  // field descriptor #4 ljava/lang/string;
  public static final java.lang.string error = "error";
 
  // field descriptor #4 ljava/lang/string;
  public static final java.lang.string input = "input";
 
  // field descriptor #4 ljava/lang/string;
  public static final java.lang.string login = "login";
 
  // method descriptor #16 ()ljava/lang/string;
  public abstract java.lang.string execute() throws java.lang.exception;
}


2: 让上面的action去继承struts2框架的actionsupport(com.opensymphony.xwork2.actionsupport)这个类提供了struts2的很多特殊的功能。
  让action类继承这个actionsupport类,就会时action类可以提供数据校验,国际化,对象序列化等功能 。而且这个actionsupport是实现action接口的。

以下就是这个actionsupport类要实现的接口声明。

public class com.opensymphony.xwork2.actionsupport
implements com.opensymphony.xwork2.action,
com.opensymphony.xwork2.validateable,
com.opensymphony.xwork2.validationaware,
com.opensymphony.xwork2.textprovider,
com.opensymphony.xwork2.localeprovider,
java.io.serializable {

。。。 相关的处理方法
}

 

需要注意的地方

actionsupport这个工具类在实现了action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该action时配置input属性。
如果检验出错误可以调用this.addfielderror的方法给框架添加错误信息。然后在页面中可以直接显示出来。
如下示例:

@override
public void validate() {
   if(null == this.getpasswd() || "".equals(this.getpasswd().trim())){
    this.addfielderror(passwd, "passwd is required");
   }
   if(null== this.getusername() || "".equals(this.getusername().trim())){
    this.addfielderror(username, "username is required");
   }
}

 

另外,actionsupport还提供了一个gettext(string key)方法还实现国际化,该方法从资源文件上获取国际化信息,这是非常有用的。

 


 


作者:weiguolee