SpringMVC数据绑定
package com.imooc.controller;
@Controller
public class TestController {
//基本类型数据绑定
在项目的开发中会面临很多的传参,在传参的时候我们要考虑到是使用基本类型还是包装类型,拿int和Integer举例,当我 |
//http://localhost:8080/baseType.do?age=1
@RequestMapping(value = "baseType.do")
@ResponseBody
public String baseType(int age){
return "age:"+age;
}
//包装类型数据绑定
//http://localhost:8080/baseType2.do?age=1
@RequestMapping(value = "baseType2.do")
@ResponseBody
public String baseType2(Integer age){
return "age:"+age;
}
//数组类型数据绑定
//http://localhost:8080/array.do?name=zs&name=ls&name=ww
@RequestMapping(value = "array.do")
@ResponseBody
public String Array(String[] name){
StringBuffer sb = new StringBuffer();
for(String item : name){
sb.append(item).append(" ");
}
return sb.toString();
}
//简单对象&多层级对象&同属性对象 数据绑定
// http://localhost:8080/object.do?name=zs&age=123&contactInfo.phone=1234&contactInfo.address=abc
// http://localhost:8080/object.do?user.name=zs&admin.name=ls&age=10
@RequestMapping(value = "object.do")
@ResponseBody
public String object(User user, Admin admin){
return user.toString()+" "+admin.toString();
}
@InitBinder("user")
public void initUser(WebDataBinder binder){
binder.setFieldDefaultPrefix("user.");
}
@InitBinder("admin")
public void initAdmin(WebDataBinder binder){
binder.setFieldDefaultPrefix("admin.");
}
/*
List的数据绑定
http://localhost:8080/list.do?users[0].name=zs&users[1].name=ls
在传递的时候我们需要保证数组的下标是连续的,否则会造成很多的资源浪费
http://localhost:8080/list.do?users[0].name=zs&users[1].name=ls&users[20].name=ww
*/
@RequestMapping(value = "list.do")
@ResponseBody
public String list(UserListForm userListForm){
return "ListSize:"+userListForm.getUsers().size()+" "+userListForm.toString();
}
/*
Set的数据绑定
http://localhost:8080/set.do?users[0].name=zs&users[1].name=ls
Set在数据类型的绑定上与List还是有所区别的,在数据绑定时Set需要初始化,否则会报错NestedServletException;
初始化Set:
在实际应用中Set主要用于对象的重复判断与排除重复的。要想让他排重需要重新对象的equals和hashCode方法
|
*/
@RequestMapping(value = "set.do")
@ResponseBody
public String set(UserSetForm userSetForm){
return userSetForm.toString();
}
/*
map的数据绑定
http://localhost:8080/map.do?users['user1'].name=zs&users['user1'].age=10&users[''user2'].name=ls
需要注意在key上使用的是单引号(')
*/
@RequestMapping(value = "map.do")
@ResponseBody
public String map(UserMapForm userMapForm){
return userMapForm.toString();
}
/*
Json的数据绑定
在参数上添加上@RequestBody
*/
@RequestMapping(value = "json.do")
@ResponseBody
public String json(@RequestBody User user){
return user.toString();
}
}
日拱一卒无有尽,功不唐捐终入海