一、 Spring MVC 的请求参数获取
- 通过@PathVariabl注解获取路径中传递参数
- 用@ModelAttribute注解获取POST请求的FORM表单数据
- 直接用HttpServletRequest获取
- 用注解@RequestParam绑定请求参数a到变量a
当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,
例如:@RequestParam(value="a", required=false)
再提供两种方式
@RequestMapping("/UpdateUser")
public String UpdateUserInfo(User user,HttpServletRequest request){
request.setAttribute("name", user.getName());
request.setAttribute("age", user.getAge());
return "/UpdateUserResult";
}
@RequestMapping("/UpdateUser2")
public ModelAndView UpdateUserInfo2(String name,int age){
ModelAndView mav=new ModelAndView();
mav.setViewName("/UpdateUserResult"); //设置返回的文件名
mav.addObject("name", age);
mav.addObject("state", age);
return mav;
}
二、乱码问题
部分摘自 http://copperfield.iteye.com/blog/968167
http://blog.csdn.net/xuechongyang/article/details/8283924
springMVC提交表单出现乱码:
在web.xml中已配置了filter
<!-- 防止中文参数乱码 -->
<filter>
<filter-name>SetCharacterEncoding</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>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 防止中文参数乱码 -->
但仍显示乱码
解决方案:指定表单提交方式为“post”
分析: 过滤器中request.setCharacterEncoding("UTF-8");
当你的表单的method使用了get的时候,这个request.setCharacterEncoding也不起作用了