[錯誤解決]SpringMVC接收對象 中文亂碼問題解決


錯誤描述 :

對於以下一段簡單前端代碼示例:

1 <!-- 請求對象實體類 -->
2       <form action="SpringMVCHandler/testObjectProperties" method="post">
3           學號:<input type="text" name="id"><br>
4           姓名:<input type="text" name="name"><br>
5           家庭住址:<input type="text" name="address.homeAddress"><br>
6           學校地址:<input type="text" name="address.schoolAddress"><br>
7           <input type="submit" value="實體類傳參(便捷)">
8       </form>

以及后台接收代碼:

1     @RequestMapping(value="testObjectProperties")
2     public String testCookieValue(Student student) {//student 必須與form表單中的屬性一致(支持級聯屬性)
3         System.out.println(student.getId()+" "+student.getName()+" "+student.getAddress().getHomeAddress()+" "+student.getAddress().getSchoolAddress());
4         return "success";
5     }

以及兩個實體類Student以及Address

Student.java

 1 package org.zlc.entity;
 2 
 3 public class Student {
 4     private int id;
 5     private String name;
 6     private Address address;
 7     public int getId() {
 8         return id;
 9     }
10     public void setId(int id) {
11         this.id = id;
12     }
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public Address getAddress() {
20         return address;
21     }
22     public void setAddress(Address address) {
23         this.address = address;
24     }
25 }
View Code

Address.java

 1 package org.zlc.entity;
 2 
 3 public class Address {
 4     private String homeAddress;
 5     private String SchoolAddress;
 6     public String getHomeAddress() {
 7         return homeAddress;
 8     }
 9     public void setHomeAddress(String homeAddress) {
10         this.homeAddress = homeAddress;
11     }
12     public String getSchoolAddress() {
13         return SchoolAddress;
14     }
15     public void setSchoolAddress(String schoolAddress) {
16         SchoolAddress = schoolAddress;
17     }
18     
19 }
View Code

在前端輸入后控制台會輸出輸入內容

 

 

但如果為中文則會輸出亂碼

 

 解決辦法:

在web.xml添加字符集攔截器

 1     <!-- 字符集過濾器 -->
 2     <filter>
 3         <description>字符集過濾器</description>
 4         <filter-name>characterEncodingFilter</filter-name>
 5         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 6         <init-param>
 7             <description>字符集編碼</description>
 8             <param-name>encoding</param-name>
 9             <param-value>UTF-8</param-value>
10         </init-param>
11         <init-param>
12             <param-name>forceEncoding</param-name>
13             <param-value>true</param-value>
14         </init-param>
15     </filter>
16 
17     <!-- 字符集攔截 -->
18     <filter-mapping>
19         <filter-name>characterEncodingFilter</filter-name>
20         <url-pattern>/*</url-pattern>
21     </filter-mapping>

中文不再亂碼

 


免責聲明!

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



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