Struts2学习笔记(10)
com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter
2)struts2的内置类型转换器,能够将String类型转换java.util.Date类型,
但Date类型的字符串必须是yyyy-MM-dd,而且能对输入日期的字符串格式进行
合理的判段(如月份不会有13月,日不会有32日等等)
3)内置转换器,不能将String类型转换任意JavaBean(模型)类型。
6.2自定义类型转换器
1)写一个类结成StrutsTypeConverte类,重写两个方法convertFromString和convertToString。
2)在src/xwork-conversion.properties文件,配置如下内容
JavaBean的全类名=自定义转换器的全类名
*在src下写一个配置文件,名字必须为xwork-conversion.properties
* 内容为key=value
* 如:要转换的JavaBean全类名=转换器全类名
方法的执行顺序:
AddressConverter()
convertFromString()
setAddress()
getAddress()
convertToString()
toString()
/**
* TODO自定义类型转换器,用于将字符串转换为Address类型
*要在src下写一个配置文件,名字必须为xwork-conversion.properties
*内容为key=value
*如:要转换的JavaBean全类名=转换器全类名
*/
public class AddressConverter extends StrutsTypeConverter {
public AddressConverter(){
/*
* 默认构造函数在服务器启动的时候就调用
* 但为什么会连续调用两次????(未解决)
* 自定义拦截器的也一样???(未解决)
*/
System.out.println("AddressConverter()");
}
//第二个参数中存放了JavaBean对象的内容,以字符串的形式,有几个JavaBean对象
//vaules中就有几个值, toClass指明要讲String转成什么类型。
public ObjectconvertFromString(Map context, String[] values, Class toClass) {
System.out.println("convertFromString()");
//将字符串转成JavaBean
if(Address.class.equals(toClass)) {//判断是否为要转换的类型
Stringstr = values[0];//取出第一个参数
String[]strs = str.split("-");//表单提交的时候是用-分隔的
returnnew Address(strs[0],strs[1], strs[2]); //将转换好的对象返回
相关新闻>>
- 发表评论
-
- 最新评论 更多>>