【问题标题】:Spring MVC with non english chars and method post带有非英语字符和方法帖子的 Spring MVC
【发布时间】:2016-05-29 10:55:16
【问题描述】:

我在 jsp 中有带有发送按钮的表单:

 <form role="form" action="/admin/newUserTest/" method="post">
       <input type="text" class="form-control" id="firstname" name="firstname">
       <input type="text" class="form-control" id="lastname" name="lastname">
       <input type ="send" value="Send">
</form>

和控制器:

@RequestMapping(value="/newUserTest", method = RequestMethod.POST)
public ModelAndView newUserTest(@RequestParam("firstname")String firstname,@RequestParam("lastname")String lastname){
    ModelAndView model = new ModelAndView();
    System.out.println(firstname);
    System.out.println(lastname);
  ...

我写在表(mysql)中的名字和姓氏。当method="get" 写出正确的,但是当method="post" 写出错误的符号,比如ÑзеÑ3。控制台会写出像 ???·?µ??3 这样的符号。 我该如何解决这个问题?

【问题讨论】:

  • ÑзеÑ3 应该是什么?

标签: mysql spring jsp encoding


【解决方案1】:

我解决了我的问题,添加到 web.xml:

<filter>
    <filter-name>encoding-filter</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>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

【讨论】:

    【解决方案2】:

    这是由于 spring 无法使用正确的编码。 确保在 web.xml 中注册 CharacterEncodingFilter

     <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>
    

    如果您使用基于 Java 类的配置。使用

            messageSource.setDefaultEncoding("UTF-8");
    

    希望它有助于解决问题。

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      相关资源
      最近更新 更多