springMVC 参数传递之:数组,Map,List,Set以及自定义复杂类型参数
2014-04-04 17:01
711 查看
Map,List,Set都无法直接作为Controller的参数类型,而必须自定义一个类,类中有一个Map,List,Set的类型,将数据传递给自定对象的Map,Set,List。下面就是一个Map类型参数的例子,Set,List的传参方式与之相似,只要将Map类型改为List或Set类型即可
jsp:
<form action="/hello/getMap" method="post">
<input name="mapVo['a'].name">
<input name="mapVo['a'].password" type="password">
<input name="mapVo['b'].name">
<input name="mapVo['b'].password" type="password">
<input type="submit" value="submit">
</form>
java:
@RequestMapping(value="/getMap",method=RequestMethod.POST)
public void getMap(MapVo mapVo){
Set set = mapVo.getMapVo().keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
Object name = iterator.next();
PersonVo p = mapVo.getMapVo().get(name);
System.out.print(name+" "+p.getName()+" "+p.getPassword());
System.out.println();
}
}
public class MapVo {
private Map<String,PersonVo> mapVo;
public Map<String, PersonVo> getMapVo() {
return mapVo;
}
public void setMapVo(Map<String, PersonVo> mapVo) {
this.mapVo = mapVo;
}
}
public class PersonVo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
通过以上代码,springMVC可以自动用map接受前台的数据,key是String类型的。
jsp:
<form action="/hello/getMap" method="post">
<input name="mapVo['a'].name">
<input name="mapVo['a'].password" type="password">
<input name="mapVo['b'].name">
<input name="mapVo['b'].password" type="password">
<input type="submit" value="submit">
</form>
java:
@RequestMapping(value="/getMap",method=RequestMethod.POST)
public void getMap(MapVo mapVo){
Set set = mapVo.getMapVo().keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
Object name = iterator.next();
PersonVo p = mapVo.getMapVo().get(name);
System.out.print(name+" "+p.getName()+" "+p.getPassword());
System.out.println();
}
}
public class MapVo {
private Map<String,PersonVo> mapVo;
public Map<String, PersonVo> getMapVo() {
return mapVo;
}
public void setMapVo(Map<String, PersonVo> mapVo) {
this.mapVo = mapVo;
}
}
public class PersonVo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
通过以上代码,springMVC可以自动用map接受前台的数据,key是String类型的。
相关文章推荐
- springmvc 接受数组,集合(list,set)类型的参数
- SpringMVC(5):MVC的参数传递详解与示例(简单类型数据、ModelAndView、Model 、 POJO 以及 Map)
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- springmvc 传递复杂对象参数报 property path is neither an array nor a List nor a Map
- springMVC学习(6)-包装pojo类型、数组、list、Map类型参数绑定
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- springMVC如何使用@RequestParam传递数组类型参数
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- SpringMVC的Controller方法的参数不能直接绑定List、Set、Map
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- springMVC通过ajax传递参数list对象或传递数组对象到后台
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- Retrofit 传递json 和 复杂参数类型List<T>
- list、vector、deque、map以及set类型分别使用的情况
- 基本数据类型的包装类型作为参数传递,以及其他引用类型作为参数传递,以及List中值的交换的一些问题
- 从简单类型到复杂类型的参数传递用例,以及传递简单string类型的解决办法
- Android学习笔记_23_服务Service之AIDL和远程服务实现进程通信以及进程间传递自定义类型参数