DateConverter.java这个类可以放到snt.supplier.util包内,主要是在使用struts1.2时FormBean时使用,通过FormBean,页面上的form表单中name与实体类对象对应,它支持String类型,而 verChar类型不能向date类型或BigDecimal类型等,所以创建了一个类解决这个问题。
使用方法就是在实体类中加上一句
static {
ConvertUtils.register (new DateConverter() , Date.class ) ;
ConvertUtils.register (new DateConverter() ,BigDecimal.class ) ;
}
DateConverter.java这个类还可以完善,最初只是为了转date类型。
没有用到<form-beans>就不用这个类了。不过其他相关可以参考。
import java. text. SimpleDateFormat;
import org. apache. commons. beanutils. Converter;
import java. util. Set;
import java. util. HashSet;
import java. util. Iterator;
import java. text. ParseException;
/**
*
*
* @author <a href="mailto:wangxiang@sinotrust.cn">wangxiang</a>
* @since JDK1.6
* @date 2012-11-13
* Version 1.0
* Copyright sinotrust.cn
*/
public class DateConverter implements Converter {
/**
* 日期格式化对象.
*/
private static SimpleDateFormat df = new SimpleDateFormat( ) ;
/**
* 模式集合.
*/
private static Set< String> patterns = new HashSet< String> ( ) ;
//注册一下日期的转换格式
static {
DateConverter. patterns. add( "yyyy-MM-dd" ) ;
DateConverter. patterns. add( "yyyy-MM-dd HH:mm" ) ;
DateConverter. patterns. add( "yyyy-MM-dd HH:mm:ss" ) ;
DateConverter. patterns. add( "yyyy/MM/dd HH:mm:ss" ) ;
}
public Object convert( Class type, Object value) {
if ( value== null) {
return null;
} else if ( value instanceof String) {
Object Obj = null;
Iterator it = patterns. iterator( ) ;
while ( it. hasNext( ) ) {
try {
String pattern = ( String) it. next( ) ;
df. applyPattern( pattern) ;
Obj = df. parse( ( String) value) ;
break ;
} catch ( ParseException ex) {
//do iterator continue
}
}
return Obj;
} else {
return null;
}
}
}
BigDecimalConverter.java
import java.math.BigDecimal;
import org.apache.commons.beanutils.Converter;
/**
*
*
* @author <a href="mailto:wangxiang@sinotrust.cn">wangxiang</a>
* @since JDK1.6
* @date 2012-11-13 Version 1.0 Copyright sinotrust.cn
*/
public class BigDecimalConverter implements Converter {
public Object convert(Class type, Object value) {
if (value == null) {
return null;
} else if (value instanceof String) {
return (BigDecimal) value;
} else {
return null;
}
}
}
我就用到这两个,所以就写了这两个。好像有个Jodd这么个工具包。我也是刚知道……哎!
Jodd 提供的功能有:
1. 提供操作Java bean,
2. 可以从各种数据源加载Bean,
3. 简化JDBC的接连与代码,
4. 剖析SQL查询,
5. 处理时间与日期,
6. 操作与格式化String,
7. 搜索本地硬盘上的文件,
8. 帮助处理Servlet请求等。
除此之外还包含一个很小,但实用的基于JSP的MVC框架。