FormBean类型转换问题

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框架。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值