struts2之3--Action类的包装
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
上一篇: PHP curl之操作实例
推荐阅读
-
Java学习记录之Collections的工具类
-
Java基础之集合框架--Collections工具类中的sort()方法
-
SpringBoot 之 @Transaction注解的类级别和方法级别的区别
-
2020-10-15 Java中的常用类库之Objects
-
基本数据类型和包装类的区别 Boolean Character Byte Short Integer Long Float Double 、栈、堆
-
php入门之连接mysql数据库的一个类_PHP教程
-
Java包装类和对应基本数据类型的自动拆箱和自动装箱
-
JS之面向对象之包装对象的理解
-
jvm之java类加载机制和类加载器(ClassLoader)的用法
-
Java中变量之局部变量、本类成员变量、父类成员变量的访问方法