struts2能够处理java中基本的类型如:String Date int 等。。。
但是某些时候我们要处理自定义的类型,处理方法主要有2中:
1. 继承DefaultTypeConverter类并重写converValue方法
2. 继承StrutsTypeConverter类并重写convertFromString 和 convertToString方法
一个完整的类型转换程序主要由4部分组成,下面以用户信息(包含用户名和密码两个属性)作为示例演示
1. 实体类也就是User
public class User {
String username;
String password;
//getXX setXX方法省略,但是必须有
}
2. 转换类UserConverter下面以以上介绍的第二种方法来实现类型转换
//省略所需要的类文件,在myeclipse中可以自动生成
public class UserConverter extends StrutsTypeConverter {
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
//对从客户端的用户信息提交到服务器端时进行类型转换
}
public String convertToString(Map arg0, Object arg1) {
//将服务器端的类型转换到客户端
}
}
3. 用UserAction对处理请求
//省略所需要的类文件,在myeclipse中可以自动生成
public class ConvertAction {
private User user;
//省略getXXX setXXX方法但是必须要有
public String execute() {
return "success";
}
}
4. 类型转换时必须的配置文件UserAction-conversion.properties
#此处命名规则要注意
user=UserConverter
当我们写类型转换时要注意的地方:
convertFromString 中第二个参数是字符串数组,这个参数就是我们要转换的字符串
类型转换文件的命名规则是:'Action的名字''-''.properties'
文件中的命名规则'action属性的名字''=''转换类'
当然我们也能批量处理自定义类型,方法是一样的。