SpringMVC接收日期类型参数

在SpringMVC开发中,遇到Date类型参数转换问题,常规方式无法自动绑定。通过参考相关文章,可以在Date类型字段上添加@DateTimeFormat注解,指定日期格式,确保前端提交的日期字符串与注解中的模式匹配,从而解决转换错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发过程中遇到了这个问题,在网上找了很多相关的解决办法
参考这篇:http://m.blog.youkuaiyun.com/u013041642/article/details/74923650讲的很详细,但是我没有成功。

一般类型的参数,都会自动实现转换,如下的pojo类

@Component
public class UserAuthorize {
    private Integer id;

    private Integer userId;

    private Integer identityType;

    private String identifier;

    private String credential;
}

在controller中

    /**
     *
     * @param userAuthorize 
     * @return
     */
    @RequestMapping(value = "***.do", method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<UserBase> updateUserInformation(UserAuthorize  userAuthorize ) {
    }

前端提交参数就会被自动绑定到userAuthorize对应的字段中

但是,如果UserAuthorize类中有个字段是Date类型,就会出现如下错误:

The request sent by the client was syntactically incorrect.

因为时间类型没有对应转换规则的话,服务器就会报错。

再参考这篇:http://m.blog.youkuaiyun.com/qq_14952009/article/details/46651927就成功了。

最简单的解决办法就是在对应的类属性上加上注解,如下:

@Component
public class UserAuthorize {
    private Integer id;

    private Integer userId;

    private Integer identityType;

    private String identifier;

    private String credential;

    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date date;
}

pattern的规则自己定,但是前端在提交参数的时候必须和该规则一致,我这里,前端就需要提交date=2018-1-5。

还有很多其他的解决办法,看了很多,这个是最简单的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值