• spring mvc提交日期类型参数


    如题,spring mvc直接提交Date类型参数会报错,400 bad request的错误。在controller里加上

    @InitBinder
    protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {
      DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      CustomDateEditor dateEditor = new CustomDateEditor(format, true);
      binder.registerCustomEditor(Date.class, dateEditor);
      super.initBinder(request, binder);
    }

    @InitBinder
    public void initBinder(WebDataBinder binder) {
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
      dateFormat.setLenient(false);
      binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));//true:允许输入空值,false:不能为空值
    }

    可以解决这个问题。但是这个时候Date类型的参数是null的话,还是会报错。

    采用另外一种方式则更好,为null也不会报错,就是把请求参数封装为一个vo类,在对应的类属性上加上注解,这样

    @DateTimeFormat(iso = ISO.DATE_TIME, pattern = "w:yyyy")
    private Date startTime;

    或者

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date lastLoginDate;

    另外如果使用验证框架,方法参数这样写(@Valid XxxParam param, BindingResult binding) ,就能直接通过BindingResult得到验证结果了。

  • 相关阅读:
    78. Subsets
    93. Restore IP Addresses
    71. Simplify Path
    82. Remove Duplicates from Sorted List II
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    312. Burst Balloons
    程序员社交平台
    APP Store开发指南
    iOS框架搭建(MVC,自定义TabBar)--微博搭建为例
  • 原文地址:https://www.cnblogs.com/liaojie970/p/6270514.html
Copyright © 2020-2023  润新知