springmvc中@RequestParam接收值为乱码问题解决
来源:互联网 发布:口袋密令网络不给力 编辑:程序博客网 时间:2024/06/05 14:07
jsp界面提交值之后进入pagingQuery方法,此时userQueryParams对象进行了封装,对象中的属性也并非乱码,载入到map中再传入到方法1之后,此时userQueryParams中的中的属性loginNameParam打印出来出现了乱码,下面就将我解决的方案总结下。
方法1
@RequestMapping(value="list",method = RequestMethod.GET)
public String list(@RequestParam(value = "page")int page,@RequestParam(value = "loginNameParam",required = false)StringloginNameParam,
@RequestParam(value = "displayNameParam",required = false)String displayNameParam,
Model model){
UserQueryParams userQueryParams = new UserQueryParams(displayNameParam,loginNameParam);
PageBounds pageBounds = new PageBounds(page,15,Order.formString("id.asc"));
model.addAttribute("userList", userService.getUserList(userQueryParams, pageBounds));
model.addAttribute("userQueryParams",userQueryParams);
return "/list";
}
方法2
@RequestMapping(value = "pagingQuery",method = RequestMethod.POST)
public ModelAndView query(@ModelAttribute("userQueryParams")UserQueryParams userQueryParams,
@RequestParam(value="page",defaultValue="1")int page) throws Exception{
Map<String,Object> map = BeanMapper.map(userQueryParams,Map.class);
map.put("page",page);
return new ModelAndView("redirect:/list").addAllObjects(map);//跳转到方法1
}
要说明的是,我这里遇到的问题并非是界面传值出现乱码,首先检查web.xml中是否有如下配置
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
再检查在spring-mvc.xml的配置中加入编码
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
我的配置中均有出现这个配置,但是还是解决不了我这里的@RequestParam乱码,后来无意间看了一篇博客,在所在tomcat中加入编码配置后,乱码就不存在了
如下在tomcat的server.xml中加入 URIEncoding="UTF-8"
<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
希望对大家有帮助
博客地址 http://xph.iteye.com/blog/1570244
- springmvc中@RequestParam接收值为乱码问题解决
- SpringMVC @RequestParam 中文乱码问题解决
- SpringMVC @RequestParam 中文乱码问题解决
- SpringMVC @RequestParam 中文乱码问题解决
- SpringMVC @RequestParam 中文乱码问题解决
- SpringMvc @requestparam 中文乱码问题解决方案
- Springmvc中@RequestParam传值中文乱码解决方案:
- Springmvc中@RequestParam传值中文乱码解决方案
- Springmvc中@RequestParam传值中文乱码解决方案
- SpringMVC用@RequestParam接收到的中文参数乱码
- SpringMVC中乱码问题解决
- SpringMVC的@RequestParam 请求乱码
- springmvc 中遇到的乱码问题解决方式
- SpringMVC @RequestParam参数乱码的问题
- @RequestParam-------springMVC
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable 和 @RequestParam 的区别
- springmvc中@PathVariable和@RequestParam的区别
- iOS通讯录开发
- 浅谈with语句
- iOS开发——使用Charles进行https网络抓包详解
- XMPP即时通信资料:
- EMC辐射干扰与静电干扰之处理方法
- springmvc中@RequestParam接收值为乱码问题解决
- 详解JavaScript的函数闭包
- Android系统启动原理
- 深入分析JavaWeb Item33 -- 开发自己简易的JDBC框架
- SQLiteのWin7下初体验
- Android开发艺术-第七章Android动画深入分析读书笔记
- 分享一下搭建SS教程
- 最长回文子串
- STM32F103ZET6 之 ADC+TIM+DMA+USART 综合实验