测试ActionForm注册类型自动转换
2009-01-01 14:30
260 查看
测试[/b]ActionForm[/b]注册类型自动转换[/b][/b]
*boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他清空转换成falase
*Date类型的转换:
*如果是java.sqlDate,页面日期的格式必须为yyyy-mm-dd,才可以转换
*如果是java.util.Date,默认情况下,struts无法转换
*自定义转换器的实现步骤:
*实现coverter接口,实现convert方法
*将convert注册,通常情况采用servlet注册
*采用servlet注册需要注意标签的配置,<load-on-start>10</load-on-startup>
(也可以采用struts plugn注册)
Struts对ActionForm的自动收集过程:
*将页面数据放到map中,其中map中的key为页面中的名称
*调用BeanUtils.setProperties方法,将map中的值逐个设置到ActionForm实例上,对于 ActionForm中的每个属性,根据类型调用相应的Converter,然后调用相应的convert 方 法,将相应的字符串转换成ActionForm中指定的类型
*可以通过BeanUtils.copyProperties(目标对象,源对象)方法进行对象值的复制
实现方法一:[/b][/b]
在[/b]servlet[/b]初始化时注册[/b][/b]
1. 实现[/b]org.apache.commons.beanutils.[/b]Converter[/b]接口[/b],[/b]
@Override
public Object convert(Class type, Object value) {
System.out.println("UtilDateConvert.value="+value);
if(value==null){
return value;
}
if(value instanceof Date){
return value;
}
Date d=null;
if(value instanceof String){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(value.toString());
} catch (ParseException e) {
e.printStackTrace();
}
}
return d;
}
2.[/b]写一个[/b]servlet[/b]注册转换器,并实现[/b]init()[/b]方法[/b][/b]
@Override
public void init() throws ServletException {
//注册转换器
ConvertUtils.register(new UtilDateConvert(), Date.class);
}
3[/b]在[/b]web.xml[/b]中配合[/b]servlet[/b]
<servlet>
<servlet-name>UtilDateConverterInitWithervlet</servlet-name> <servlet-class>com.zsw.struts.UtilDateConverterInitWithervlet</servlet-class>
<!-- 使tomcat启动时初始化 -->
<load-on-startup>3</load-on-startup>
</servlet>
实现方法二:[/b][/b]
使用PlugIn注册,
1.[/b]实现[/b]org.apache.commons.beanutils.[/b]Converter[/b]接口[/b],[/b]
@Override
public Object convert(Class type, Object value) {
System.out.println("UtilDateConvert.value="+value);
if(value==null){
return value;
}
if(value instanceof Date){
return value;
}
Date d=null;
if(value instanceof String){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(value.toString());
} catch (ParseException e) {
e.printStackTrace();
}
}
return d;
}
2.[/b]实现[/b]org.apache.struts.action.[/b]PlugIn[/b]接口。[/b][/b]
@Override
public void init(ActionServlet arg0, ModuleConfig arg1)
throws ServletException {
//注册转换器
ConvertUtils.register(new UtilDateConvert(), Date.class);
}
3.[/b]在[/b]struts-config.xml[/b]中配置:[/b][/b]
<plug-in className="com.zsw.struts.UtilDateConverterInitWithPlugin" />
*boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他清空转换成falase
*Date类型的转换:
*如果是java.sqlDate,页面日期的格式必须为yyyy-mm-dd,才可以转换
*如果是java.util.Date,默认情况下,struts无法转换
*自定义转换器的实现步骤:
*实现coverter接口,实现convert方法
*将convert注册,通常情况采用servlet注册
*采用servlet注册需要注意标签的配置,<load-on-start>10</load-on-startup>
(也可以采用struts plugn注册)
Struts对ActionForm的自动收集过程:
*将页面数据放到map中,其中map中的key为页面中的名称
*调用BeanUtils.setProperties方法,将map中的值逐个设置到ActionForm实例上,对于 ActionForm中的每个属性,根据类型调用相应的Converter,然后调用相应的convert 方 法,将相应的字符串转换成ActionForm中指定的类型
*可以通过BeanUtils.copyProperties(目标对象,源对象)方法进行对象值的复制
实现方法一:[/b][/b]
在[/b]servlet[/b]初始化时注册[/b][/b]
1. 实现[/b]org.apache.commons.beanutils.[/b]Converter[/b]接口[/b],[/b]
@Override
public Object convert(Class type, Object value) {
System.out.println("UtilDateConvert.value="+value);
if(value==null){
return value;
}
if(value instanceof Date){
return value;
}
Date d=null;
if(value instanceof String){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(value.toString());
} catch (ParseException e) {
e.printStackTrace();
}
}
return d;
}
2.[/b]写一个[/b]servlet[/b]注册转换器,并实现[/b]init()[/b]方法[/b][/b]
@Override
public void init() throws ServletException {
//注册转换器
ConvertUtils.register(new UtilDateConvert(), Date.class);
}
3[/b]在[/b]web.xml[/b]中配合[/b]servlet[/b]
<servlet>
<servlet-name>UtilDateConverterInitWithervlet</servlet-name> <servlet-class>com.zsw.struts.UtilDateConverterInitWithervlet</servlet-class>
<!-- 使tomcat启动时初始化 -->
<load-on-startup>3</load-on-startup>
</servlet>
实现方法二:[/b][/b]
使用PlugIn注册,
1.[/b]实现[/b]org.apache.commons.beanutils.[/b]Converter[/b]接口[/b],[/b]
@Override
public Object convert(Class type, Object value) {
System.out.println("UtilDateConvert.value="+value);
if(value==null){
return value;
}
if(value instanceof Date){
return value;
}
Date d=null;
if(value instanceof String){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(value.toString());
} catch (ParseException e) {
e.printStackTrace();
}
}
return d;
}
2.[/b]实现[/b]org.apache.struts.action.[/b]PlugIn[/b]接口。[/b][/b]
@Override
public void init(ActionServlet arg0, ModuleConfig arg1)
throws ServletException {
//注册转换器
ConvertUtils.register(new UtilDateConvert(), Date.class);
}
3.[/b]在[/b]struts-config.xml[/b]中配置:[/b][/b]
<plug-in className="com.zsw.struts.UtilDateConverterInitWithPlugin" />
相关文章推荐
- SSH:Struts1框架(ActionForm注册类型自动转换)
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- Struts 1 学习笔记-4-3(Struts中ActionForm的类型自动转换)
- 动态ActionForm、struts上传文件、自定义ActionForm的类型转换、Struts对ActionForm的自动搜集流程
- CXF学习(4) 处理无法自动转换的复合数据类型
- 类型自动转换
- EVC数据类型的转换(转的帖子,待测试)
- 关于js的类型转换(强制和自动的规则)
- 3.16 基本数据类型转换(自动转换\强制转换)
- SpingMvc配置string类型自动转换date日期类型
- Map等CXF无法自动转换的复合数据类型的形参和返回值的处理
- JAVA基础--可变参,自动装箱与拆箱,类型转换
- java类型自动转换
- java基本数据类型自动转换规则
- 数据类型自动转换和强制转换示例
- dsp调试中数据类型自动转换遇到的问题
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型
- 数据类型自动转换(Java)