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));
        }
    }
  • 相关阅读:
    第一篇
    面试题
    CSS样式
    html初步学习
    web开发项目连接访问数据库
    oracle数据库操作之连接
    oracle数据库的基本操作(create创建表,update更新表,drop删除表,select查询表,insert插入数据)
    用js在前台界面进行账户密码的检测,账户和密码符合要求后可进行登录
    用servlet代替js对登录进行检测
    JSP转发和重定向的区别,以及如何获取数据
  • 原文地址:https://www.cnblogs.com/xfdhh/p/11517575.html
Copyright © 2011-2022 走看看