在一个springmvc项目中,当表单提交数据时,如何对表单提交的数据进行格式的转换呢?
?只要是数据进行网络传输都是以字符串的形式,进入内存后才有数据类型。
springmvc在上下文环境内置了一些转换器,可以完成基本数据类型和字符串的转换比如
这些都是由springMVC自动完成,不需要程序员去写。
?
?
可以看到id?这个字符串自动转成了Integer,?
现在故意把id的值改为abc
那么会报400的错误。
假设有字段需要特殊的格式,可以按照以下示例来写
1、直接在javaBean的属性上写上springMVC提供的注解
public class MonsterOne {
private Integer id;
private String name;
//通过注解,说明生日时间的格式为yyyy-MM-dd
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
//通过注解,说明工资的格式为###,##.##(即小数)
@NumberFormat(pattern = "###,##.##")
private float salary;
@Controller
@RequestMapping(value = "/monster")
public class MonsterHandler {
@RequestMapping(value = "/monster01")
public String monster01(MonsterOne monsterOne){
System.out.println(monsterOne);
return "monsterOK";
}
}
2、这样就要求前端必须要按照后端注解规定的格式写?
<form action="monster/monster01" method="post">
id:<input type="text" name="id"><br>
name:<input type="text" name="name"><br>
birthday:<input type="text" name="birthday"><br>
salary:<input type="text" name="salary"><br>
<input type="submit" name="提交">
</form>
3、如果格式没有对应上后端的注解格式,?那么会报400错误。
4、如何使得springMVC可以自动显示错误在页面上,看下一个文章 springMVC验证与国际化