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));
        }
    }
  • 相关阅读:
    CentOS7 部署K8S集群成功后,重启就不能用了???k8s环境自启动
    k8s环境部署本地.net core web项目
    CentOS7 部署K8S集群,最新版1.17.3-0
    VM安装Linux Centos7.0虚拟机
    Dapper.Contrib拓展及数据库生成实体
    解决EF没有生成字段和表说明
    C#使用AutoMapper6.2.2.0进行对象映射
    .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录
    Asp.net Core2.0 缓存 MemoryCache 和 Redis
    目录
  • 原文地址:https://www.cnblogs.com/xfdhh/p/11517575.html
Copyright © 2011-2022 走看看