Converter主要是实现类型转功能。我们通常可以定义自己的Converter类。如:
import org.apache.commons.beanutils.Converter;
public class DateConvert implements Converter{
public Object convert(Class arg0, Object arg1) {
String p = (String)arg1;
if(p== null || p.trim().length()==0){
return null;
}
try{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return df.parse(p.trim());
}
catch(Exception e){
return null;
}
}
}
自定义对象转换类的使用:
在使用之前先注册
ConvertUtils.register(new DateConvert(), java.util.Date.class);
因为要注册converter,所以不能再使用BeanUtils的静态方法了,必须创建BeanUtilsBean实例
BeanUtilsBean beanUtils = new BeanUtilsBean(convertUtils,new PropertyUtilsBean());
beanUtils.setProperty(bean, name, value);
项目开发案例:
/**
* 设置Struts 中数字<->字符串转换,字符串为空值时,数字默认为null,而不是0.
* 也可以在web.xml中设置struts的参数达到相同效果,在这里设置可以防止用户漏设web.xml.
*/
public static void registConverter() {
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new FloatConverter(null), Float.class);
ConvertUtils.register(new DoubleConverter(null), Double.class);
//ConvertUtils.register(new DateConverter("yyyy-MM-dd"), Date.class);
ConvertUtils.register(new DateConverter(null), Date.class);
ConvertUtils.register(new StringConverter(),String.class);
}
DateConverter:
import java.text.SimpleDateFormat;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 简易DateConverter.
* 供Apache BeanUtils 做转换,默认时间格式为yyyy-MM-dd,可由构造函数改变.
*
* @author calvin
*/
public class DateConverter implements Converter {
private static final Log log = LogFactory.getLog(DateConverter.class);
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
public DateConverter(String formatPattern) {
if (StringUtils.isNotBlank(formatPattern)) {
format = new SimpleDateFormat(formatPattern);
}
}
public Object convert(Class arg0, Object value) {
try {
String dateStr = (String) value;
if (StringUtils.isNotBlank(dateStr)) {
return format.parse(dateStr);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return null;
}
}
分享到:
相关推荐
一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在...
`commons-license.txt`文件通常包含了Apache Commons BeanUtils的许可协议,它是Apache License 2.0,这是一个非常宽松的开源许可,允许用户自由地使用、修改和分发代码,只需保留原始作者的版权信息即可。...
在`commons-beanutils.jar.zip`压缩包中,除了核心库文件外,还包含了一个`license.txt`文件,这是Apache软件基金会发布的Apache License 2.0授权协议,它规定了该库的使用、分发和修改条件,确保了开源社区的公平...
commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包
commons-beanutils.jar commons-beanutils.jar
"commons-beanutils-1.8.2.jar"可能是旧版本的库文件,尽管它和"commons-beanutils.jar"可能功能相似,但为了保持代码的稳定性和兼容性,通常建议使用最新或项目指定的版本。在开发过程中,确保所有依赖库的版本匹配...
此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。
json相关jar包(不使用springmvc开发时)。其中包含(commons-beanutils.jar、commons-collections-3.1.jar、commons-lang-2.6.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar)
标题中的"commons.jar +commons-beanutils.jar"指的是Apache Commons项目中的两个核心组件:commons.jar和commons-beanutils.jar。Apache Commons是Java编程语言中的一系列小型实用程序库,为开发人员提供了各种常见...
Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar和api文档,以及其依赖的commons-logging-1.2.jar包
beanUtils 方便访问javaBean 附带支持框架 logging jar包,Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar,以及其依赖的commons-logging-1.2.jar包
- **嵌套对象属性**:`BeanUtils.getProperty(orderBean, "address.city")`。此例中,`orderBean`中包含一个名为`address`的属性,而`address`又包含一个名为`city`的属性。通过使用点分隔符,可以直接获取`city`的...
JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省...commons-beanutils.jar commons-collections.jar commons-digester.jar jsf-api.jar jsf-impl.jar jstl.jar standard.jar
commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k) jdbc 专用