[错误解决]SpringMVC接收对象 中文乱码问题解决

错误描述 :

对于以下一段简单前端代码示例:

<!-- 请求对象实体类 -->
      <form action="SpringMVCHandler/testObjectProperties" method="post">
          学号:<input type="text" name="id"><br>
          姓名:<input type="text" name="name"><br>
          家庭住址:<input type="text" name="address.homeAddress"><br>
          学校地址:<input type="text" name="address.schoolAddress"><br>
          <input type="submit" value="实体类传参(便捷)">
      </form>
 

以及后台接收代码:

@RequestMapping(value="testObjectProperties")
     public String testCookieValue(Student student) {//student 必须与form表单中的属性一致(支持级联属性)
         System.out.println(student.getId()+" "+student.getName()+" "+student.getAddress().getHomeAddress()+" "+student.getAddress().getSchoolAddress());
         return "success";
     }
 

以及两个实体类Student以及Address

Student.java

package org.zlc.entity;

public class Student {
    private int id;
    private String name;
    private Address address;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Address getAddress() {
        return address;
    }
    public void setAddress(Address address) {
        this.address = address;
    }
}
 

Address.java

package org.zlc.entity;

public class Address {
    private String homeAddress;
    private String SchoolAddress;
    public String getHomeAddress() {
        return homeAddress;
    }
    public void setHomeAddress(String homeAddress) {
        this.homeAddress = homeAddress;
    }
    public String getSchoolAddress() {
        return SchoolAddress;
    }
    public void setSchoolAddress(String schoolAddress) {
        SchoolAddress = schoolAddress;
    }
    
}

 

在前端输入后控制台会输出输入内容

 

 

但如果为中文则会输出乱码

 

 解决办法:

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

<!-- 字符集过滤器 -->
    <filter>
        <description>字符集过滤器</description>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <description>字符集编码</description>
            <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>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 

中文不再乱码

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值