Spring-MVC接受参数
来源:互联网 发布:计算流体力学 知乎 编辑:程序博客网 时间:2024/06/05 06:20
springMvc--接受请求参数
回到顶部
接收基本类型
表单:
<h1>接受基本类型参数到Controller</h1> <form action="/param/test" method="post"> 用户编号:<input type="text" name="id"/> 用户名:<input type="text" name="name"/> <input type="submit" value="提交"/> </form>
controller:
/** * 接受基本类型参数 */ @RequestMapping("/test") public String test(Integer id,String name){ System.out.println(id); System.out.println(name); return "index"; }
我的表单是post提交的,开始是发生了乱码问题,那么如何解决post乱码问题呢?
需要在web.xml文件中配置一个字符过滤器
<!-- springMvc处理post提交中文乱码 --> <filter> <filter-name>characterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 指明定编码规则 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
回到顶部
接收对象类型:
实体类:user和order是一对多的关系
public class User { private String id; private String name; private Order order; ........ }
public class Order { private Integer no; private String name; .......)
1)接收有关系的对象
表单:
<h1>接受对象类型参数到Controller</h1> <form action="/param/test1" method="post"> 用户编号:<input type="text" name="id"/> 用户名:<input type="text" name="name"/> 订单编号:<input type="text" name="order.no"/> 订单名称:<input type="text" name="order.name"/> <input type="submit" value="提交"/> </form>
controller:
/** * 接受对象类型参数 通过user中的关系属性,获得order */ @RequestMapping("/test1") public String test1(User user){ System.out.println(user.getid()); System.out.println(user.getOrder().getNo()); return "index"; }
2)接收多个对象
如果是没有关系的实体类,需要把实体类封装在一个DTO中:
BeanVO:
/***user和order数据传输类*/public class BeanVO { private User user; private Order order; ......}
controller:
/** * 接受多个对象类型参数 * 如果多个pojo之间没有关系,也可以采用这个方法 */ @RequestMapping("/test2") public String test1(BeanVO beanVO){ System.out.println(beanVO.getUser()); System.out.println(beanVO.getOrder()); return "index"; }
回到顶部
接收数组类型:
springMvc支持接收数组类型
表单:
<h1>接受数组类型参数到Controller</h1> <form action="/param/test3" method="post"> str[0]:<input type="text" name="str"/> str[1]:<input type="text" name="str"/> str[2]:<input type="text" name="str"/> <input type="submit" value="提交"/> </form>
controller:
/** * 支持接收接受数组类型 * @requestMapping 中 * 属性二:method=RequestMethod.POST * 注意: * 一旦方法声明的@requestMapping注解中加入method属性,该方法只能被method属性中声明的提交方式访问 * 默认支持所有提交方式 */ @RequestMapping(value="/test3",method=RequestMethod.POST) public String test2(String[] str){ for (String string : str) { System.out.println(string); } return "index"; }
回到顶部
接收集合类型:
springMvc不支持直接接受集合类型,需要定义一个DTO数据传输类:
public class CollectionVO { private List<String> list; private List<User> users; private Map<String,User> maps; ......}
接下来分别测试
1) list集合泛型是基本类型,例如:list<String>
表单:
<h1>接受集合类型泛型是基本类型参数到Controller</h1> <form action="/param/test4" method="post"> list[0]:<input type="text" name="list"/> list[1]:<input type="text" name="list"/> list[2]:<input type="text" name="list"/> <input type="submit" value="提交"/> </form>
controller:
/** * 接受集合类型参数 List<String> * 注意:springmvc 不支持集合类型参数接受 * 解决办法: * 封装接收 */ @RequestMapping("/test4") public String test3(CollectionVO collectionVO){ for (String string : collectionVO.getList()) { System.out.println(string); } return "index"; }
2)list集合泛型对象类型,例如:List<User> users
form表单:
<h1>接受集合泛型User类型参数到Controller</h1> <form action="/param/test5" method="post"> users[0].id:<input type="text" name="users[0].id"/> users[1].id:<input type="text" name="users[1].id"/> users[2].id:<input type="text" name="users[2].id"/> <input type="submit" value="提交"/> </form>
controller: 接受到的view数据,会被封装成3个User
/** * 接受集合类型参数 List<User> * 注意:springmvc 不支持集合类型参数接受 * 解决办法: * 封装接收 */ @RequestMapping("/test5") public String test4(CollectionVO collectionVO){ for (User user : collectionVO.getUsers()) { System.out.println(user); } return "index"; }
3)Map集合: Map集合中封装的是 Map<String,User> maps
form表单:
<h1>接受Map集合泛型String,User类型参数到Controller</h1> <form action="/param/test6" method="post"> maps:<input type="text" name="maps['123'].id"/> maps:<input type="text" name="maps['456'].id"/> maps:<input type="text" name="maps['789'].id"/> <input type="submit" value="提交"/> </form>
controller:
/** * map集合参数接受 Map<String,User> maps */ @RequestMapping("/test6") public String test5(CollectionVO collectionVO){ for (Map.Entry<String, User> map : collectionVO.getMaps().entrySet()) { System.out.println(map.getKey()+" ------>"+map.getValue()); } return "index"; }
阅读全文
0 0
- Spring-MVC接受参数
- Spring MVC-注解接受参数
- Spring mvc 接受请求参数的方式
- Spring MVC--16.参数接受map
- Spring MVC--16.参数接受map
- @RequestBody Spring MVC接受对象数组,并接受其它参数
- spring MVC 接受表单参数常用的五种方法
- 使用HandlerMethodArgumentResolver接口自定义Spring MVC的参数接受规则
- Spring MVC--17.json参数接受--1.json,map
- spring mvc接受list数组
- spring mvc 接受对象数组
- spring mvc接受post数据过大,参数获取为空的解决方法
- $.ajax contenType是appliation/json的时候,spring mvc后台无法接受data参数
- spring3 mvc 接受参数 redirect forward
- spring mvc 接受多对象的处置
- spring mvc @RequestBody接受post json对象
- spring mvc 接受多对象的处理
- spring mvc @RequestBody接受post json对象
- <c:choose>和<fmt:formatDate>的用法
- Java SE7新特性之泛型实例创建时的类型推断
- JavaScript--我发现,原来你是这样的JS(基础概念--躯壳,不妨从中文角度看js)
- 算数运算符(+-*/)优先级>移位运算>位运算>逻辑运算
- 程序15
- Spring-MVC接受参数
- 点赞 js
- java file类使用方法详解
- Shell中的调试
- 字符串压缩算法
- MacOS 开发
- 程序16
- HDU 6201 transaction transaction transaction(网络流+最短路)
- 2017.9月计划