springmvc03 接收请求参数
3.1 基本类型参数
请求参数和方法的形参 同名即可
springMVC默认可以识别的日期字符串格式为: YYYY/MM/dd HH:mm:ss
通过@DateTimeFormat可以修改默认日志格式
//网页端输入: http://xxxx/param/test1?id=1&name=shine&gender=true&birth=2020/12/12 12:13:20@RequestMapping("/test1")public String test1(Integer id, String name, Boolean gender, Date birth){System.out.println("test1");System.out.println("id:"+id+" name:"+name+" gender:"+gender+" birth:"+birth);return "hello";}
http://localhost:8080/param/test1?id=1&name=shine&gender=true&birth=2020/12/12%2012:13:20test1
id:1 name:shine gender:true birth:Sat Dec 12 12:13:20 CST 2020
3.2 实体收参【重点
】
请求参数和实体的属性 同名即可
上述使用参数办法如果参数较多不方便,就创建一个实体类承载这些参数
public class User {private Integer id;private String name;private Boolean gender;private Date birth;private String[] hobby;//set/get ...
}// http://xxxx/param/test1?id=1&name=shine&gender=true&birth=2020/12/12 12:13:20@RequestMapping("/test2")public String test2(User user){System.out.println("test2");System.out.println(user);return "hello";}
http://localhost:8080/param/test1?id=1&name=shine&gender=true&birth=2020/12/12%2012:13:20test1
id:1 name:shine gender:true birth:Sat Dec 12 12:13:20 CST 2020
3.3 数组收参
简单类型的 数组
创建表单jsp
<form action="${pageContext.request.contextPath}/param/test3">id: <input type="text" name="id"> <br>name:<input type="text" name="name"><br>gender:<input type="text" name="gender"><br>birth:<input type="text" name="birth"><br><input type="checkbox" name="hobby" value="football"> 足球<input type="checkbox" name="hobby" value="basketball"> 篮球<input type="checkbox" name="hobby" value="volleyball"> 排球 <br><input type="submit" value="提交"></form>
// http://xxxx/param/test3?hobby=football&hobby=basketball&hobby=volleyball@RequestMapping("/test3")
// public String test3(Stirng[] hobby){public String test3(User user){System.out.println("test3");System.out.println(user);return "hello";}
http://localhost:8080/param.jsp
http://localhost:8080/param/test3?id=1&name=xiaoming&gender=true&birth=2020%2F12%2F20&hobby=football&hobby=basketballtest3
User{id=1, name='xiaoming', gender=true, birth=Sun Dec 20 00:00:00 CST 2020, hobby=[football, basketball]}
3.4 集合收参 【了解】
注意:如果使用集合地址栏输入集合的【】符号时会乱码,需要用表单传递参数
public class UserList {public List<User> getUsers() {return users;}public void setUsers(List<User> users) {this.users = users;}private List<User> users;
}
<form action="${pageContext.request.contextPath}/param/test4" method="post">id: <input type="text" name="users[0].id"> <br>name:<input type="text" name="users[0].name"><br>gender:<input type="text" name="users[0].gender"><br><hr>id: <input type="text" name="users[1].id"> <br>name:<input type="text" name="users[1].name"><br>gender:<input type="text" name="users[1].gender"><br><input type="submit" value="提交"></form>
// post请求:http://...?users[0].id=1&users[0].name=zhangsan&users[0].birth=2018-12-12&users[1].id=2&....// http://xxx/param/test4?users[0].id=1&users[0].name=shine&users[0].gender=true&users[1].id=2&users[1].name=zhangsan@RequestMapping("/test4")public String test4(UserList userList){System.out.println("test4");for (User user : userList.getUsers()) {System.out.println(user);}return "hello";}
3.5 路径参数
// {id} 定义名为id的路径;【/hello/{id}】的匹配能力和【/hello/*】等价
// http://localhost:8989/.../hello/10 {id}匹配到10// {id} 命名路径// {id} 等价于* 后面可以写任意符合类型的id 如:/test5/1 test5/2 test5/xxxx@RequestMapping("/test5/{id}")public String test5(@PathVariable("id") Integer id){System.out.println("test5");System.out.println("id:"+id);return "hello";}@RequestMapping("/test6/{id}/{name}")public String test6(@PathVariable Integer id,@PathVariable("name") String name2){//把{id} 路径匹配到的值赋给name参数System.out.println("test6");System.out.println("id:"+id);System.out.println("name:"+name2);return "hello";}
http://localhost:8080/param/test5/22
test5
id:22
http://localhost:8080/param/test6/22/xiaomingtest6
id:22
name:xiaoming
3.6 中文乱码
首先,页面中字符集统一
JSP : <%@page pageEncoding="utf-8" %>
HTML : <meta charset="UTF-8">
其次,tomcat中字符集设置,对get请求中,中文参数乱码有效
Tomcat配置:URIEncoding=utf-8
最后,设置此filter,对post请求中,中文参数乱码有效,
在web.xml中配置过滤器
<!-- 此过滤器会进行:request.setCharactorEncoding("utf-8"); -->
<filter><filter-name>encoding</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>
</filter>
<filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>
springmvc03 接收请求参数相关推荐
- SpringMVC框架 学习DAY_02 : 接收请求参数/向模板页面转发数据/重定向与转发 /Session
1. 接收客户端提交的请求参数 1.1. 使用HttpServletRequest接收请求参数 在处理请求的方法的参数列表中,添加HttpServletRequest类型的参数,在处理请求的过程中,调 ...
- java控制器接收请求参数_SpringMVC之接收请求参数和页面传参
Spring接收请求参数 1,使用HttpServletRequest获取 Java代码 @RequestMapping("/login.do") public String lo ...
- java 页面接收参数_详解SpringMVC——接收请求参数和页面传参
spring接收请求参数: 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(Ht ...
- springmvc接收请求参数(springmvc教程二)
目录 工程代码 普通接收请求参数 pojo接收请求参数 @RequestParam接收请求参数 restful风格 URL接收请求参数 json接收请求参数 Array数据接收请求参数 接收请求参数序 ...
- Struts2的第二天(Action接收请求参数)
Struts2的第二天 Struts2的第二天的内容 1. Struts2框架中的Servlet的API的使用 2. Struts2中Action接收请求参数 3. Struts2中自定义拦截器 案例 ...
- 重定向转发,接收请求参数及数据回显-P11,12
重定向和转发: 我们的实现本身就是转发 . 想删掉视图解析器的话,就需要在return把路径写全 重定向就改为redirect:而且重定向不走视图解析器,因为是新的请求,新的URL. 接收请求参数: ...
- Spring MVC 接收请求参数所有方式总结!
来源:简书,作者:zhrowable 链接:https://www.jianshu.com/p/5f6abd08ee08 SpringMVC请求参数接收 其实一般的表单或者JSON数据的请求都是相对简 ...
- HttpServletRequest和@Requestparam、@RequestBody、直接实体接收请求参数的区别与示例
文章目录 概述 1.HttpServletRequest 2.@RequestParam 3.@RequestBody 4.直接实体接收 HttpServletRequest请求方法详解: 概述 客户 ...
- springMVC接收请求参数的几种方式
1. 用注解@RequestParam绑定请求参数 用注解@RequestParam绑定请求参数a到变量a,当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,例如: ...
最新文章
- Sencha Touch 开发入门
- java中有ClockPane类吗,JavaFX实现简易时钟效果(二)
- Linux下Makefile的automake生成全攻略--转
- C语言90道试题资料
- how is SAP OData metadata read from CDS view via SADL
- 收藏一些自己认为好的网站或博客
- 【整理】MySQL 之 autocommit
- jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
- leetcode 57. 插入区间
- 工作177:表单重置项目处理
- linux怎么安装git服务器,linux下安装git服务端
- Matlab添加BNT工具箱
- java 接口隔离_关于接口隔离原则的一个实现:
- 微服务升级_SpringCloud Alibaba工作笔记0009---阿里云部署微服务_在内网不同机器上_报错_注册中心找不到对应的机器_遇到java.net.UnknownHostExceptio
- 实现strSrt()
- STM32CbueMX之W25Q256
- 医学图像处理眼科检查
- 【转】Photoshop中快速复制的技巧有哪些
- iTop-4412 裸机教程(一)- 从启动方式开始
- Android基于安卓手机个人理财系统
热门文章
- linux link path walk,python之os.walk()与os.path.walk()
- 服务器重启宝塔面板打不开了【已完美解决】
- Uva(10305)
- [QA翻译]如何在Storm里拆分stream流?
- C语言的本质(7)——C语言运算符大全
- hdu1426 Sudoku Killer
- SQL 语句 - Select(6): 字段运算
- 简答如何做项目的测试经理!!!
- Linux音频驱动开发概括
- 八大排序算法总结以及python实现