Webwork实现自定义数字类型转换器
2007-05-10 20:54
369 查看
实现目标:从页面上输入123456.789,页面回显成金额格式:123,456.789
JavaBean:
package ch12;
public class User ...{
private Double salary;
public Double getSalary() ...{
return salary;
}
public void setSalary(Double salary) ...{
this.salary = salary;
}
}
Action:
package ch12;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork.ActionSupport;
public class TestConvert extends ActionSupport ...{
private User user;
public User getUser() ...{
return user;
}
public void setUser(User user) ...{
this.user = user;
}
public String execute() throws Exception ...{
return SUCCESS;
}
}
xwork.xml
<action name="testConvert" class="ch12.TestConvert">
<result name="success">/ch12/TestConvert.jsp</result>
</action>
自定义转化器:最重要的
这个转换器是对类定义的,为类的属性定义转换器,所以,命名方式为:ClassName-conversion.properties
内容为:salary=ch12.SalaryConvert 表示User类的salary属性使用ch12.SalaryConvert 这个类进行转换
需要注意的时,如果是页面输入和页面输出双向都用到salary属性,需要判断cls的类型,定义相应的转换规则
见代码注释
package ch12;
import java.text.DecimalFormat;
import java.util.Map;
import ognl.DefaultTypeConverter;
public class SalaryConvert extends DefaultTypeConverter ...{
public Object convertValue(Map map, Object obj, Class cls) ...{
if(cls==String.class)...{ //从action显示数据到页面
DecimalFormat fmt = new DecimalFormat("##,###,###,###,##0.00");
return fmt.format((Double)obj);
}else if(cls==Double.class)...{ //从页面提交到action
return new Double(((String[])obj)[0]);
}
return null;
}
}
如果是从action到jsp,则进行数字格式转换
如果是从jsp到action,则把输入的String转换成Double,因为User类的salary属性是Double类型
运行jsp,输入123456.789,提交,页面显示结果为123,456.789
JavaBean:
package ch12;
public class User ...{
private Double salary;
public Double getSalary() ...{
return salary;
}
public void setSalary(Double salary) ...{
this.salary = salary;
}
}
Action:
package ch12;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork.ActionSupport;
public class TestConvert extends ActionSupport ...{
private User user;
public User getUser() ...{
return user;
}
public void setUser(User user) ...{
this.user = user;
}
public String execute() throws Exception ...{
return SUCCESS;
}
}
xwork.xml
<action name="testConvert" class="ch12.TestConvert">
<result name="success">/ch12/TestConvert.jsp</result>
</action>
自定义转化器:最重要的
这个转换器是对类定义的,为类的属性定义转换器,所以,命名方式为:ClassName-conversion.properties
内容为:salary=ch12.SalaryConvert 表示User类的salary属性使用ch12.SalaryConvert 这个类进行转换
需要注意的时,如果是页面输入和页面输出双向都用到salary属性,需要判断cls的类型,定义相应的转换规则
见代码注释
package ch12;
import java.text.DecimalFormat;
import java.util.Map;
import ognl.DefaultTypeConverter;
public class SalaryConvert extends DefaultTypeConverter ...{
public Object convertValue(Map map, Object obj, Class cls) ...{
if(cls==String.class)...{ //从action显示数据到页面
DecimalFormat fmt = new DecimalFormat("##,###,###,###,##0.00");
return fmt.format((Double)obj);
}else if(cls==Double.class)...{ //从页面提交到action
return new Double(((String[])obj)[0]);
}
return null;
}
}
如果是从action到jsp,则进行数字格式转换
如果是从jsp到action,则把输入的String转换成Double,因为User类的salary属性是Double类型
运行jsp,输入123456.789,提交,页面显示结果为123,456.789
相关文章推荐
- MyBatis自定义类型转换器实现加解密
- Mybatis实现自定义的类型转换器TypeHandler
- Mybatis实现自定义的类型转换器TypeHandler
- Struts2实现自定义转换器和全局类型转换器
- struts2实现自定义数据类型转换器
- springmvc实现自定义类型转换器示例
- 写出自己自定义类型转换器的实现步骤及代码
- struts2实现Date类型转换和自定义类型转换器
- Mybatis实现自定义类型转换器TypeHandler的方法
- MyBatis自定义类型转换器实现加解密
- Struts2实现自定义转换器和全局类型转换器
- 【转载】怎样让SAP的货币、数字数据类型保留4位小数或者自定义位数小数
- 自定义数据类型转换器的开发步骤
- 框架学习之Struts2 第三节 请求参数的接收和自定义类型转换器
- MyBatis自定义类型转换器
- mybatis自定义类型转换器
- Struts自定义类型转换器之字符串与复合对象之间的转换
- Struts2之自定义类型转换器
- 【干货】C++通过模板特化实现类型萃取实例--实现区分基本类型与自定义类型的memcpy
- 为struts2自定义类型转换器:Date的转换