博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring mvc 使用PropertyEditor进行数据转换
阅读量:6424 次
发布时间:2019-06-23

本文共 1989 字,大约阅读时间需要 6 分钟。

hot3.png

        项目中遇到一个对timestamp 进行数据转换问题,spring mvc 提供了

        initBinder的方法来处理这类型的问题,下面记录一下。

        controller 注册转换的PropertyEditor:

        

@Override	protected void initBinder(HttpServletRequest request,			ServletRequestDataBinder binder) throws Exception {		// TODO Auto-generated method stub		//yyy/mmdd yyy-mm-dd yy-mm-dd HH:mm:ss		binder.registerCustomEditor(Timestamp.class,				new TimeStampPropertyEditor());		super.initBinder(request, binder);	}

编写对于TimeStampPropertyEditor 的转换操作

public class TimeStampPropertyEditor extends PropertyEditorSupport {	private String pattern = "yyyy-MM-dd HH:mm:ss.S";	private String[] formater_pattern = new String[] { "yyyy-MM-dd HH:mm:ss.S",			"yyyy-MM-dd HH:mm:ss" };	/**	 * 	 */	public TimeStampPropertyEditor() {		// TODO Auto-generated constructor stub	}	public TimeStampPropertyEditor(String pattern) {		// TODO Auto-generated constructor stub		this.pattern = pattern;	}	/*	 * (non-Javadoc)	 * 	 * @see java.beans.PropertyEditorSupport#setAsText(java.lang.String)	 */	@Override	public void setAsText(String text) throws IllegalArgumentException {		if (StringUtils.isEmpty(text)) {			setValue(null);		} else {			try {				Date date = DateUtils.parseDate(text, formater_pattern);				Timestamp timestamp = new Timestamp(date.getTime());				//				设置转换完的值				setValue(timestamp);			} catch (ParseException e) {				// TODO Auto-generated catch block				e.printStackTrace();				setValue(null);			}		}	}	/*	 * (non-Javadoc)	 * 	 * @see java.beans.PropertyEditorSupport#getAsText()	 */	@Override	public String getAsText() {		// TODO Auto-generated method stub		//	获取model的值		Timestamp value = (Timestamp) getValue();		if (value == null) {			return "";		} else {			try {				Date date = new Date(value.getTime());				String str = DateFormatUtils.format(date, pattern);				return str;			} catch (Exception e) {				return "";			}		}	}}

ok,当pages-->controller-->对应method-->initbinder-->bind转换

这个过程会针对TimeStamp类型的类进行使用对用的转换器

参考 这个的博客,有更多springmvc介绍

转载于:https://my.oschina.net/fattian/blog/133411

你可能感兴趣的文章
《CUDA C编程权威指南》——3.4节避免分支分化
查看>>
《日志管理与分析权威指南》一2.2 日志的概念
查看>>
《Adobe After Effects CC 经典教程(彩色版)》——1.5 对合成图像做动画处理
查看>>
《数据结构与算法:Python语言描述》一1.3算法和算法分析
查看>>
python异步并发模块concurrent.futures简析
查看>>
【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(五)
查看>>
《ZooKeeper:分布式过程协同技术详解》——1.2 示例:主-从应用
查看>>
webview与js交互
查看>>
阿里云Redis集群子实例内存查看
查看>>
《JavaScript启示录》——1.6 从构造函数创建字面量值
查看>>
通过R让你的复杂网络图更具艺术感
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现》导读
查看>>
我们对人工智能的10大误解
查看>>
Qualitative and Quantitative
查看>>
Load高,CPU idle很高,这情况太诡异了
查看>>
《写给PHP开发者的Node.js学习指南》一1.3 Eclipse PDT
查看>>
BAT三巨头激辩AI:李彦宏称强人工智能不会到来;马云说So TM What
查看>>
《Python数据科学实践指南》一 第1章 Python介绍
查看>>
《JUnit实战(第2版)》—— 2.5 小结
查看>>
《Oracle性能优化与诊断案例精选》——1.2 京师磨练,转眼已历十二载
查看>>