通过POJO获取请求参数
可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值
创建包bean 创建类user
设置有参无参方法
生成get set tostring方法
1 2 3 4 5 6 7
| <form th:action="@{/testpojo}" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br> 年龄:<input type="text" name="age"><br> 邮箱:<input type="text" name="email"><br> <input type="submit"> </form>
|
1 2 3 4 5
| @RequestMapping("/testpojo") public String testPOJO(User user){ System.out.println(user); return "success"; }//最终结果-->User{id=null, username='张三', password='123', age=23, sex='男', email='123@qq.com'}
|
解决获取请求参数的乱码问题
解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中进行注册
一种是get的乱码问题,一种是post的乱码问题
GET请求直接在tomcat中修改添加
1 2 3
| <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
|
post请求在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!--配置springMVC的编码过滤器--> <filter> <filter-name>CharacterEncodingFilter</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>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
|
注:
SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效