apache.commons.beanutils转换器的使用

有一个枚举类型的类:

 

public enum Gender {
	MAN{
		public String getName(){return "男";}
	},WOMEN{
		public String getName(){return "女";}
	};
	public abstract String getName();
}

 为他定义一个转换器:

 

import org.apache.commons.beanutils.Converter;
import cn.aaron.bean.user.Gender;

public class GenderConverter implements Converter{

	@SuppressWarnings("unchecked")
	public Object convert(Class clazz, Object value) {
		if(value==null || "".equals((String)value)) return null;
		if(value instanceof Gender) return value;//如果要转换为枚举类型
		try{//如果要转换为String类型
			return Gender.valueOf((String) value);
		}catch (Exception e) {}
		return null;
	}
}

最后在Filter里面注册一下就行了:

 

public class SetCodeFilter implements Filter{

	public void destroy() {}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterchain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) request;
		req.setCharacterEncoding("UTF-8");
		filterchain.doFilter(request, response);
	}

	public void init(FilterConfig config) throws ServletException {
		ConvertUtils.register(new DateConverter(), Date.class);
		ConvertUtils.register(new SexConverter(), Sex.class);
		ConvertUtils.register(new GenderConverter(), Gender.class);//此处就是注册Gender转换器
		ConvertUtils.register(new DeliverWayConverter(), DeliverWay.class);
		ConvertUtils.register(new PaymentWayConverter(), PaymentWay.class);
		try{
			Properties prop = new Properties();
			prop.put("runtime.log", config.getServletContext().getRealPath("/WEB-INF/log/velocity.log"));
			prop.put("file.resource.loader.path", config.getServletContext().getRealPath("/WEB-INF/vm"));
			prop.put("input.encoding", "UTF-8");
			prop.put("output.encoding", "UTF-8");
			Velocity.init(prop);
		}catch( Exception e ){
			e.printStackTrace();
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值