spring mvc 接受Date类型参数的问题?

发布于 2022-09-05 06:25:04 字数 310 浏览 20 评论 0

// 历史搜索词
@SuppressWarnings("unchecked")
@RequestMapping(value = "/searchHistory")
@ResponseBody
public JSON searchHistory(HttpServletRequest request, HttpSession session,
        String keyword, int page, Date creatTimeSta, Date creatTimeEnd) {

。。。。
}

Date 类型一直是null?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

淤浪 2022-09-12 06:25:04

你请求的代码呢? 是否是请求的name和方法参数名不一致。

丢了幸福的猪 2022-09-12 06:25:04

你是不是前端发请求的时候字段creatTimeSta写成了createTimeSta...

今天小雨转甜 2022-09-12 06:25:04

你的 Date creatTimeSta 是不是拼错了。。。。。

春花秋月 2022-09-12 06:25:04

你可以使用DateTimeFormat指定格式,客户端用字符串传过来,以避免不同的客户端时区/区域不一致,导致无法接收
@DateTimeFormat(pattern = "yyyy-MM-dd") Date creatTimeSta

無心 2022-09-12 06:25:04

看看前端那边传过来的参数名是不是一致吧

琴流音 2022-09-12 06:25:04

一般不是用字符串接受的吗

梦罢 2022-09-12 06:25:04

前端怎么写的呢?肯定是前端传值的问题啦

揪着可爱 2022-09-12 06:25:04

1.检查前后台名称,传值等问题,确定代码是正确的
2.通过使用SpringMVC的@InitBinder,对特殊类型的数据字符串进行相应的格式处理
示例:

 @InitBinder
    protected void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Date.class, new MyDateEditor());
    }

    private class MyDateEditor 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) {
                }
            }
            setValue(date);
        }
    }
唱一曲作罢 2022-09-12 06:25:04

看看你的请求是get还是post,有可能是日期被Encode了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文