mvc自定义日期转换器

1. 配置编码过滤器

1, web.xml中设置配置spring mvc提供的编码过滤器,解决get/post提交过来的数据乱码问题

  <!--配置编码过滤器--><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></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

2. 获取请求参数,参数绑定注解

http://127.0.0.1:8080/spring_mvc_01/user/save13?name=123

    /*** 利用name来映射username* required false 可不提供参数,否则400* @param username*/@RequestMapping(value = "/save13")@ResponseBodypublic void save13(@RequestParam(value = "name", defaultValue = "bitqian", required = false) String username) {System.out.println(username);}

3. 获得请求参数,自定义类型转换器

实现步骤:
1. 定义转换器类实现converter接口
2. 在配置文件中声明转换器
3. 在,<annotation-driven>中引用转换器

1,自定义日期转换器

package com.bitqian.convertor;import org.springframework.core.convert.converter.Converter;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 自定义日期转换器* @author echo lovely* @date 2020/9/2 22:01*/
public class DateConverter implements Converter<String, Date> {@Overridepublic Date convert(String s) {List<DateFormat> dateList = new ArrayList<>();dateList.add(new SimpleDateFormat("yyyy-MM-dd"));dateList.add(new SimpleDateFormat("yyyy/MM/dd"));dateList.add(new SimpleDateFormat("yyyy.MM.dd"));Date date = null;for (int i = 0; i < dateList.size(); i++) {try {// 支持 -- // ..日期格式的转换date = dateList.get(i).parse(s);return date;} catch (ParseException e) {// e.printStackTrace();continue;}}return null;}public static void main(String[] args) {DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");try {Date date = dateFormat.parse("2020/4/4");System.out.println(date);} catch (ParseException e) {e.printStackTrace();}}
}

2,spring mvc配置

        <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/><!--日期转换器--><bean id="conversionServiceFactoryBean"class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><list><bean class="com.bitqian.convertor.DateConverter"></bean></list></property></bean>

3,测试日期转换器

    /*** 测试日期转换器*/@RequestMapping(value = "/save14")@ResponseBodypublic void save14(Date date) {System.out.println(date);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

link引入和@import的区别

本质上, 这两种方式都是加载CSS文件, 但还是存在着细微的差别 import 机制不同于link&#xff0c;link是加载页面前css加载完毕&#xff0c;import 是先读取文件再加载import是css2.0里的 ie5以上不支持用js控制dom时改变样式&#xff0c;只能用link&#xff0c;import不是dom…

重新理解javascript回调函数

把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数 经常遇到这样一种情况&#xff0c;某个项目的A层和B层是由不同的人员协同完成.A层负责功能funA,B层负责funcB。当B层要用到某个模块的数据,于是他对A层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接…

前端学习(1184):数据绑定指令

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

struts2文件上传,下载

目录1. 页面表单2. 上传下载实现1. 页面表单 <HTML><HEAD><TITLE>上传下载图片</TITLE><meta http-equiv"Content-Type" content"text/html; charsetGBK"></head><body><form enctype"multipart/form-…

各个浏览器以及内核

//IE :trident 简写:-ms- //Firefox :Gecko 简写:-moz-//Google chrome:webkit/blink 简写:-webkit-//Sefari:webkit 简写:-webkit-//opera:presto 简写:-o-

Windows安装Python包下载工具pip遇到的问题

到Python的官网下载get-pip.py文件&#xff0c;然后按照说明进行安装。 在安装过程中&#xff0c;我遇到以下问题&#xff1a; cmd的codepage引起的编码错误&#xff0c;提示65001编码错误&#xff0c;通过chcp 936切换到默认的代码页可解决此问题。其次是权限的问题&#xff0…

前端学习(1185):数据响应式

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

Tomcat7.0+的JNDI问题

上次搭建springspringmvcmybatis框架时用的第三方连接池jar包&#xff0c;但是部署到tomcat中后访问没有问题&#xff0c;但是启动时报了个JNDI的错&#xff0c;我没用JNDI你给我报什么&#xff0c;fuck&#xff01;把错误贴到百度上搜索没搜到&#xff0c;更fuck&#xff0c;没…

spring mvc 实现单文件 || 多文件上传

文件上传1. pom依赖&#xff08;jar包&#xff09;2. 文件上传解析器配置3. 上传实现4. 下载||文件展示实现&#xff08;io流的实现&#xff09;项目下载地址https://github.com/sevenyoungairye/File-Upload1. pom依赖&#xff08;jar包&#xff09; <!-- common upload fi…

前端学习(1186):双向数据绑定

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

浏览器获取正确的scrollTop值

window.pageYOffset 被所有浏览器支持除了 IE 6, IE 7, IE 8, 不关doctype的事&#xff0c; 注IE9 开始支持此属性。 window.scrollY 被Firefox, Google Chrome , Safari支持 不关doctype的事, 注IE9 不支持此属性。 在&#xff08;quirk 模式&#xff09;的时候 document.body…

拦截器,利用拦截器进行登陆权限控制

拦截器&#xff0c;登录权限控制demo1. 拦截器demo2. 登录权限控制地址&#xff1a;https://github.com/sevenyoungairye/spring-mvc-interceptor1. 拦截器demo 什么是拦截器 拦截器基于是aop思想实现的。 针对controller里面的目标方法进行拦截。 对比过滤器是过滤所有请求&…

vue的watch监听

Vue.js 有一个方法 watch&#xff0c;它可以用来监测Vue实例上的数据变动。 如果对应一个对象&#xff0c;键是观察表达式&#xff0c;值是对应回调&#xff0c;值也可以是方法名&#xff0c;或者是对象&#xff0c;包含选项。 <template><div><el-input v-mo…

通过CMD命令行创建和使用Android 模拟器 AVD

进行Android APP测试时&#xff0c;若手持android手机设备稀少的情况下&#xff0c;我们可以通过创建Android模拟器AVD来代替模拟android手机设备&#xff0c;本文就具体介绍如何创建和使用AVD。 1、创建AVD 每个AVD模拟一套虚拟设备来运行Android应用程序。无论…

docker安装-环境阿里OS7安装

docker安装-环境阿里OS7安装 官网地址 第一步 curl -fsSL https://get.docker.com -o get-docker.sh第二步 sh get-docker.sh第三步-- 开启docker systemctl start docker第四步–查看docker版本 docker version欧克

mvc框架异常处理机制

目录1.mvc 框架提供的SimpleMappingExceptionResolver2. 继承HandlerExceptionResolver类&#xff0c;根据controller抛出的异常&#xff0c;进行对应的业务操作项目地址https://github.com/sevenyoungairye/spring-mvc-exception1.mvc 框架提供的SimpleMappingExceptionResolv…

前端学习(1188):事件绑定

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…

hibernate基于单表curd

目录1. hibernate框架2. 配置文件实体mapper和hibernate.cfg.xml3. 操作单表增删改查1. hibernate框架 数据持久层的框架 功能定位:专门用来访问数据库,对数据库进行增删改查操作 Hibernate是一个ORM框架 MyBatis MyBatisPlus、JPA&#xff08;springdata jpa&#xff09; O…

前端学习(1189):事件基本使用

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- v-cloak用法 -->&…