通过POJO获取请求参数

  1. 1. 通过POJO获取请求参数
  2. 2. 解决获取请求参数的乱码问题
    1. 2.0.1. GET请求直接在tomcat中修改添加
    2. 2.0.2. post请求在

通过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中处理编码的过滤器一定要配置到其他过滤器之前,否则无效