SpringMVC无法接收日期类型的参数
2016-05-27 11:17
513 查看
前言:spring mvc 后台只接收String类型,所以需要对日期类型处理
解决方案:
第一种方案:注解。依赖开源的日期工具包,joda-time-2.1.jar。步骤如下:
1)在vo的日期型变量加注解:@DateTimeFormat(pattern = "yyyy-MM-dd")
2)导入joda-time-2.1.jar包。
3)配置<mvc:annotation-driven/>,自动生成Controller。
第二种方案:写通用的属性编辑器。参考http://www.w2bc.com/Article/19998。
第三种方案:在控制器里写属性编辑器。此种方法比较单一,不灵活,只适用于测试。将下面2个方法拷贝至Controller即可。
/** 时间属性编辑器**/
@InitBinder
public void initBuilder(ServletRequestDataBinder bin) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor cust = new CustomDateEditor(sdf, true);
bin.registerCustomEditor(Date.class, cust);
}
public class DateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(text);
} catch (ParseException e) {
format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = format.parse(text);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
setValue(date);
}
}
解决方案:
第一种方案:注解。依赖开源的日期工具包,joda-time-2.1.jar。步骤如下:
1)在vo的日期型变量加注解:@DateTimeFormat(pattern = "yyyy-MM-dd")
2)导入joda-time-2.1.jar包。
3)配置<mvc:annotation-driven/>,自动生成Controller。
第二种方案:写通用的属性编辑器。参考http://www.w2bc.com/Article/19998。
第三种方案:在控制器里写属性编辑器。此种方法比较单一,不灵活,只适用于测试。将下面2个方法拷贝至Controller即可。
/** 时间属性编辑器**/
@InitBinder
public void initBuilder(ServletRequestDataBinder bin) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor cust = new CustomDateEditor(sdf, true);
bin.registerCustomEditor(Date.class, cust);
}
public class DateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(text);
} catch (ParseException e) {
format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = format.parse(text);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
setValue(date);
}
}
相关文章推荐
- 遍历Map的四种方法
- date java 时间相关
- 34.Search for a Range LeetCode Java版代码
- 23种设计模式再回顾
- Spring @ControllerAdvice @ExceptionHandler
- JAVA学习(3)数据类型:byte
- 《排序算法》——希尔排序,桶式排序(Java)
- MyBatis3.3.0关于invalid comparison: java.sql.Timestamp and java.lang.String异常的解决
- Maven那点事儿(Eclipse版)
- java.lang.Math类中包含基本的数字操作
- Eclipse 的 Workspace 下边有一个 .metadata 的目录,是做什么用的?
- 使用JDK的MessageDigest类进行加密
- eclipse中 将java项目转换为web项目
- eclipse中mahout源码的导入及编译
- 错误记录--The import XXX cannot be resolved
- Eclipse Debug 的source not found问题
- java 几种算法
- Spring Autowired(required = false) 说明
- java虚拟机类加载机制
- Java语言实现二叉树