为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot中自定义参数绑定

标签:
Java Vue.js

正常情况下,前端传递来的参数都能直接被SpringMVC接收,但是也会遇到一些特殊情况,比如Date对象,当我的前端传来的一个日期时,就需要服务端自定义参数绑定,将前端的日期进行转换。自定义参数绑定也很简单,分两个步骤:

1.自定义参数转换器

自定义参数转换器实现Converter接口,如下:

public class DateConverter implements Converter<String,Date> {
    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    @Override
    public Date convert(String s) {
        if ("".equals(s) || s == null) {
            return null;
        }
        try {
            return simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

convert方法接收一个字符串参数,这个参数就是前端传来的日期字符串,这个字符串满足yyyy-MM-dd格式,然后通过SimpleDateFormat将这个字符串转为一个Date对象返回即可。

2.配置转换器

自定义WebMvcConfig继承WebMvcConfigurerAdapter,在addFormatters方法中进行配置:

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new DateConverter());
    }
}

OK,如上两步之后,我们就可以在服务端接收一个前端传来的字符串日期并将之转为Java中的Date对象了,前端日期控件如下:

<el-date-picker
    v-model="emp.birthday"
    size="mini"
    value-format="yyyy-MM-dd HH:mm:ss"
    style="width: 150px"
    type="date"
    placeholder="出生日期">
</el-date-picker>

服务端接口如下:

@RequestMapping(value = "/emp", method = RequestMethod.POST)
public RespBean addEmp(Employee employee) {
    if (empService.addEmp(employee) == 1) {
        return new RespBean("success", "添加成功!");
    }
    return new RespBean("error", "添加失败!");
}

其中Employee中有一个名为birthday的属性,该属性的数据类型是一个Date,源码我就不贴了,小伙伴直接在本项目源码中查看即可。

源码地址:https://github.com/lenve/vhr

点击查看更多内容
7人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.4万
获赞与收藏
3885

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消