struts2中Double类型的转换
2014-10-26 16:36
295 查看
今天做项目,ssh + Extjs,页面js中定义了几个NumberField,对应的value都是double类型的,其中有个NumberField的name为 name,结果执行的时候报错了,说找不到setName(String name)方法,可我分明写了get和set方法:setName(double name),奇怪,为什么是setName(String name)?原来问题出在struts上,struts自带的类型转换机制将double类型的数值用string转换了,当然出问题了。
通过自定义类型转换可以解决此问题。写一个全局转换器,只要遇到double型的字段,都通过这个转换器来转换。代码如下:
然后,在WebContent/WEB-INF/class目录下新建一个文件:xwork-conversion.properties,内容如下:
java.lang.Double=com.gdqy.DoubleConvert
将struts中的get和set方法定义成Double对象,如:
重启tomcat,运行程序就没有问题了。
全局数据类型转换的原理如下:
在WEB-INF/classes目录下新建一个xwork-conversion.properties文件(在MyEclipse中可直接新建在 src文件夹下),写上: 自定义类型的包名+类名 = 执行转换的类的包名+Converter类名,如: java.lang.Double=com.gdqy.DoubleConvert.这样所在Action类在执行set 和get方法时都要首先要读取classes 目录下的xwork-conversion.properties文件(如果存在),以确定当前的属性要不要执行类型转换,如果需要则调用 properties文件指定的Converter类进行转换 ,这样就实现了全局的数据类型的转换.
通过自定义类型转换可以解决此问题。写一个全局转换器,只要遇到double型的字段,都通过这个转换器来转换。代码如下:
DoubleConvert.java: package com.gdqy.DoubleConvert; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class DoubleConvert extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { if (Double.class == toClass) { String doubleStr = values[0]; System.out.println("获取到的字符串" + doubleStr); Double d = Double.parseDouble(doubleStr); return d; } return 0; } @Override public String convertToString(Map context, Object o) { return o.toString(); } }
然后,在WebContent/WEB-INF/class目录下新建一个文件:xwork-conversion.properties,内容如下:
java.lang.Double=com.gdqy.DoubleConvert
将struts中的get和set方法定义成Double对象,如:
private Double name; public void setName(Double name) { this.name = name; }
重启tomcat,运行程序就没有问题了。
全局数据类型转换的原理如下:
在WEB-INF/classes目录下新建一个xwork-conversion.properties文件(在MyEclipse中可直接新建在 src文件夹下),写上: 自定义类型的包名+类名 = 执行转换的类的包名+Converter类名,如: java.lang.Double=com.gdqy.DoubleConvert.这样所在Action类在执行set 和get方法时都要首先要读取classes 目录下的xwork-conversion.properties文件(如果存在),以确定当前的属性要不要执行类型转换,如果需要则调用 properties文件指定的Converter类进行转换 ,这样就实现了全局的数据类型的转换.
相关文章推荐
- struts2中Double类型的转换
- struts2页面上double类型的数据转换成整数
- struts2入门学习--类型转换
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- struts2 类型转换流程
- [struts2]类型转换笔记
- 如何将 10 字节 Long 类型的值的 Double 转换为 8 字节 Double
- 关于如何把带有千分符浮点数字符串转换成double类型
- Struts2.1笔记(六):Struts2的 类型转换(续)
- struts2的一些用法(二):类型转换
- CString类型 转换为 double类型
- java中数据类型转换 Integer String Long Float Double Date
- 请问如何将Double类型转换成DateTime类型
- struts2类型转换
- Struts2入门-类型转换补充
- 总结2:Struts2类型转换
- double类型准确转换成int类型
- java中数据类型转换 Integer String Long Float Double Date
- Struts2学习笔记5:Struts2类型转换续二
- 十位以上长整型或double类型数强制转换为16进制字符串