[springMVC]03.20复习springMVC支持路径中占位符与获取请求参数
springMVC
SpringMVC支持路径中的占位符(重点)
原始方式
/updateUser?id=1
rest方式
/updateUser/1
SpringMVC路径中的占位符常用于RESTful风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,再通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参
<a th:href="@{/hello/testRest/1/2}">测试rest风格传递参数</a>
@RequestMapping("/testRest/{page}/{limit}")
public String testRest(@PathVariable long page , @PathVariable long limit){
System.out.println("page:" + page + "==limit:" + limit);
return "success";
}
SpringMVC获取请求参数
1 通过servletAPI获取
- 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
2 通过controller方法形参获取
- 通过控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求的时候,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参
3 通过entity获取请求参数
- 获取的方法就和在GuLi学院项目一样,先创建和数据库对应的实体类,然后创建前端的表和后端的实体类对应,之后在返回值的地方return R.ok()...等等里面的逻辑就执行完成了.
解决获取请求参数的乱码问题
解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中配置
<!--配置解决乱码的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>
注意:需要配置到配置HiddenHttpMethodFilter过滤器的前面才能使用