zoukankan      html  css  js  c++  java
  • SpringMVC中文乱码与日期类型的处理

    中文乱码问题

      只需要在web.xml中配置编码过滤器即可

      <filter>
        <filter-name>characterEncodingFilter</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>
        <!--设置request作用域强制使用此编码格式-->
        <init-param>
          <param-name>forceRequestEncoding</param-name>
          <param-value>true</param-value>
        </init-param>
        <!--设置response作用域强制使用此编码格式-->
        <init-param>
          <param-name>forceResponseEncoding</param-name>
          <param-value>true</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

    或者直接设置request和response都强制使用此编码

        <init-param>
          <param-name>ForceEncoding</param-name>
          <param-value>true</param-value>
        </init-param>

    日期类型处理

    1、方法一:在类的字段或Controller形参上@DataFormat(pattern="yyyy-MM-dd")

    @Setter@Getter@NoArgsConstructor@AllArgsConstructor@ToString
    public class Student {
        private String username;
        private String password;
        private List<String> id;
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        private Date birthday;
    }

    2、方法二:在Controller类中添加以下代码

    @InitBinder
    public void initBinderDateType(WebDataBinder binder){
          SimpleDateFormat sdf = new SimpleDateFormat();
          sdf.applyPattern("yyyy-MM-dd");
          binder.registerCustomEditor(java.util.Date.class,new CustomDateEditor(sdf,true));
    }

    3、方法三:使用@ControllerAdvice注解,该类必须处于能被Spring扫描到的包中。

    @ControllerAdvice
    public class DateFormatControllerAdvice {
        @InitBinder
        public void initBinderDateType(WebDataBinder binder){
            SimpleDateFormat sdf = new SimpleDateFormat();
            sdf.applyPattern("yyyy-MM-dd");
            binder.registerCustomEditor(java.util.Date.class,new CustomDateEditor(sdf,true));
        }
    }
  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/xfdhh/p/11517575.html
Copyright © 2011-2022 走看看