类型转换的意义:
MVC框架,属于表现层的解决方案。
负责收集用户请求的参数,并将参数传给控制器组件
但所有的请求参数都是字符串类型,而java 为强类型语言
struts2的内建类型转换器
局部类型转换器:
在Action范围内使用
定义文件 ActionName-conversion。
properties
位置:放置Action 类同目录下
内容: propertyName = 类型转换器
仅仅对某个Action 的属性起作用
properyName:Action类中要进行数据转换的属性名。
类型转换器:负责转换的类(全类名)
全局类型转换器:
在全局类型内使用
定义文件:xwork-conversion。
propertes
位置:src 目录下
内容: propertyName = 类型转换器
对所有Action的特定类型的属性都会生效
propertyName:Action类中要进行数据转换的属性名。(全类名)
类型转换器:负责转换的类(全类名)
类型转换的错误处理:
conversionError拦截器
Struts2的类型转换器执行转换过程中出现错误,conversionError拦截器负责将错误封装成fileError,并将错误信息放入ActionContext中,并且返回input逻辑视图
显示的错误信息:
Invalid field value for field “user。
age”;
处理显示的错误信息:
使用国际化资源文件
Xwork。default。invalid。fieldvalue={0}字段类型转换失败!
user。age字段类型转换失败!
Jsp代码
Properties代码
java。
util。Date=org。cric。convertor。DateConverter
Java代码
package org。cric。convertor;
import java。text。SimpleDateFormat;
import java。
util。Calendar;
import java。util。Date;
import java。util。Map;
import org。apache。struts2。util。StrutsTypeConverter;
public class DateConverter extends StrutsTypeConverter {
public Object convertFromString(Map context, String[] values, Class toClass) {
String[] strArray=values[0]。
split(",");
Calendar calendar = Calendar。getInstance();
calendar。set(Calendar。YEAR,Integer。parseInt(strArray[0]));
calendar。
set(Calendar。MONTH,Integer。parseInt(strArray[1])-1);
calendar。set(Calendar。DAY_OF_MONTH, Integer。parseInt(strArray[2]));
Date date = calendar。
getTime();
return date;
}
public String convertToString(Map context, Object object) {
if(null!=object){
Date date = (Date)object;
SimpleDateFormat formater = new SimpleDateFormat("yyyy,MM,dd");
return formater。
format(date);
}
return null;
}
}
Jsp代码
创建时间:。
全部