所谓的数据绑定,是客户端发送请求信息,通过处理器适配器调用springMVC提供的绑定组件将请求信息转成controller方法的形参
基本类型的绑定
/**
* @param age
* @return
* http://localhost:8080/byAge.do?age=1
*/
@RequestMapping("/byAge.do")
@ResponseBody
public String age(int age){
return "age : " + age;
}
注意一点:基本类型数据绑定,如果没有传参数,会报500错误,如图
为了避免出现500错误,建议在对数据进行绑定的时候,用@RequestParam注解来解决这个问题
/**
* 基本类型数据绑定,可以用@RequestParam注解,value属性为传参别名,defaultValue默认赋值
* @param age
* @return
* http://localhost:8080/byParamAge.do?xage=1
*/
@RequestMapping("/byParamAge.do")
@ResponseBody
public String ageByParam(@RequestParam(value = "xage",defaultValue = "0") int age){
return "age : " + age;
}
就算不传参数,也不报错
包装类型的绑定
/**
* @param age
* @return
* http://localhost:8080/byAge2.do?age=1
*/
@RequestMapping("/byAge2.do")
@ResponseBody
public String age2(Integer age){
return "age : " + age;
}
包装类型相对基本类型而言,没那么多限制,如果没有传参数,不会报错,直接返回null
同样,也可以用@RequestParam来指定默认值
/**
* 包装类型数据绑定,可以用@RequestParam注解,value属性为传参别名,defaultValue默认赋值
* @param age
* @return
* http://localhost:8080/byParamAge2.do?xage=1
*/
@RequestMapping("/byParamAge2.do")
@ResponseBody
public String age2ByParam(@RequestParam(value = "xage",defaultValue = "0")Integer age){
return "age : " + age;
}
数组的绑定
/**
* 数组绑定
* @param animal
* @return
* http://localhost:8080/byArray.do?animal=Tiger&animal=Monkey&animal=Rabbit
*/
@RequestMapping("/byArray.do")
@ResponseBody
public String array(String[] animal){
StringBuilder StringBuilder = new StringBuilder();
for(String animalItem : animal){
StringBuilder.append(animalItem).append(" ");
}
return StringBuilder.toString();
}
springMVC数据绑定【二】——简单对象、多层级对象和同对象数据绑定
springMVC数据绑定【三】——List、Set和Map绑定
springMVC数据绑定【四】——Json和XML