Springmvc中@RequestParam傳值中文亂碼解決方案


首先jsp表單里面有一些參數要傳到controller中,通過以下方法接收: 

Java代碼   收藏代碼
  1. @RequestMapping(value="/orderPaper")  
  2.     public ModelAndView orderPaper(   
  3.             @RequestParam("paperName")String paperName,  
  4.             @RequestParam("openStartTime")String openStartTime,   
  5.             @RequestParam("openEndTime")String openEndTime ) {  
  6.         ModelAndView mv = new ModelAndView();  
  7. mv.addObject("paperName", paperName);    //這里面傳過來的是中文,接收到的是一堆笑得很開心的的亂碼  
  8.         mv.setViewName("/college/orderPaper");  
  9.         return mv;  
  10.     }  


怎么處理呢?通過下面的工具類: 

Java代碼   收藏代碼
  1. public class EncodingTool {  
  2.     public static String encodeStr(String str) {  
  3.         try {  
  4.             return new String(str.getBytes("ISO-8859-1"), "UTF-8");  
  5.         } catch (UnsupportedEncodingException e) {  
  6.             e.printStackTrace();  
  7.             return null;  
  8.         }  
  9.     }  
  10. }  


這樣,只要把controller中改為

Java代碼   收藏代碼
  1. mv.addObject("paperName",EncodingTool.encodeStr(paperName));   



在網上有的說還需要在web.xml里面配置: 

Java代碼   收藏代碼
  1. <!-- 字符過濾器 -->  
  2.   <filter>  
  3.     <filter-name>encodingFilter</filter-name>  
  4.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  5.     <init-param>  
  6.         <param-name>encoding</param-name>  
  7.         <param-value>UTF-8</param-value>  
  8.     </init-param>  
  9.   </filter>  
  10.   <filter-mapping>  
  11.     <filter-name>encodingFilter</filter-name>  
  12.     <url-pattern>/*</url-pattern>  
  13.   </filter-mapping>  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM