您的位置:首页 > 编程语言 > Java开发

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);
              }
         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: