SpringMVC学习之日期类型转换@DateTimeFormat
SpringMVC学习之日期类型转换@DateTimeFormat
因为日期在各个国家的表示形式不一样,所以在输入日期的时候很容易出现400错误。这个时候就需要进行日期转换了。
对于单个属性来说:直接在方法的参数列表中添加@DateTimeFormat标签就行了,然后在标签中@DateTimeFormat(pattern = "yyyy-MM-dd")即可。
`@Controller("formController")
public class FormController { @PostMapping("/apply") @ResponseBody public String apply(@RequestParam String name, @DateTimeFormat(pattern = "yyyy-MM-dd") Date createTime, String course, @RequestParam List<Integer> purpose) { System.out.println(name); System.out.println(course); System.out.println(createTime); for (Integer p:purpose) { System.out.println(p); } return "success";
}`
对于使用实体对象接受数据
- 首先在实体对象中创建createTime对象
- 然后在对象的上面添加@DateTimeFormat(pattern = "yyyy-MM-dd")
就可以了。
全局默认时间转换器
- 首先新建一个包converter*(与controller同一路径下),然后包中创建一个类,实现Converter<String, Date>。泛型的第一个为需要转换的对象类型,第二个为转换成的对象类型。
- 具体的程序
public class MyDateConverter implements Converter<String, Date> { public Date convert(String s) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date d = sdf.parse(s); return d; } catch (ParseException e) { return null; } } }
- 在applicationContext中定义,让springmvc知道这个转换器,而且还要在启用Spring MVC的注解开发模式的标签中,添加一个conversion-service
<!--启用Spring MVC的注解开发模式--> <mvc:annotation-driven conversion-service="conversionService">