Spring-mvc的处理日期请求参数

简介: Spring-mvc的处理日期请求参数

正文


定义自定义的Converter


@Slf4j
public class MyConverter implements Converter<String, Date> {
    @Override
    public Date convert(String source) {
        log.info("start convert");
        if (null == source || "".equals(source)) {
            return null;
        }
        String pattern = "";
        if (source.matches("^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$")) {
            pattern = "yyyy-MM-dd";
        } else if (source.matches("^(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d$")) {
            pattern = "yyyy-MM-dd";
        } else if (source.matches("^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d$")) {
            pattern = "yyyy-MM-dd HH:mm:dd";
        } else {
            throw new IllegalArgumentException("not match");
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        try {
            Date parse = simpleDateFormat.parse(source);
            return parse;
        } catch (ParseException e) {
            //e.printStackTrace();
            throw new IllegalArgumentException(e.getMessage());
        }
    }
}


配置converter 


    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="registerDefaultFormatters" value="false" />
        <property name="converters">
            <set>
                <bean class="com.block.converter.MyConverter"/>
            </set>
        </property>
        <property name="formatters">
            <set>
                <bean class="org.springframework.format.number.NumberFormatAnnotationFormatterFactory" />
            </set>
        </property>
        <property name="formatterRegistrars">
            <set>
                <bean class="org.springframework.format.datetime.standard.DateTimeFormatterRegistrar">
                    <property name="dateFormatter">
                        <bean class="org.springframework.format.datetime.standard.DateTimeFormatterFactoryBean">
                            <property name="pattern" value="yyyy-MM-dd"/>
                        </bean>
                    </property>
                </bean>
            </set>
        </property>
    </bean>


<mvc:annotation-driven conversion-service="conversionService"/>
相关文章
|
前端开发 Java 数据安全/隐私保护
深入理解 Spring MVC Controller —— 请求参数获取
前言 接上篇《深入理解 Spring MVC Controller —— 请求映射》,上篇主要介绍了处理器方法及请求映射的定义。有了处理器方法 Spring MVC 就可以对请求进行处理,有了请求映射 Spring MVC 就能知道哪些请求应该由哪些处理器方法来处理。
673 0
深入理解 Spring MVC Controller —— 请求参数获取
|
8天前
|
前端开发 Java 网络架构
[AIGC] Spring 获取前端请求参数的全面指南
[AIGC] Spring 获取前端请求参数的全面指南
|
监控 前端开发 Java
spring mvc 获取请求参数,获取返回值的解决办法
spring mvc 获取请求参数,获取返回值的解决办法
262 0
|
11月前
|
前端开发 Java Spring
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
138 0
|
自然语言处理 前端开发 Java
Spring Boot MVC请求参数通用校验及国际化支持
目录 一、Validation及国际化配置 1、添加依赖 2、校验失败提示消息国际化配置 3、application.properties 4、国际化资源文件 二、代码演示 1、全局异常处理 2、MessageUtils工具类 3、响应VO 2、测试Controller和请求DTO 3、多语言属性文件 4、测试用例 (1)简单对象UserReqDTO测试 (2)包含List集合对象的ChargeRuleReqDTO测试
Spring Boot MVC请求参数通用校验及国际化支持
|
前端开发 Java Spring
Spring MVC框架:第三章:获取请求参数和页面跳转控制
Spring MVC框架:第三章:获取请求参数和页面跳转控制
|
JSON 前端开发 Java
Spring MVC 接收请求参数所有方式总结!
SpringMVC请求参数接收 其实一般的表单或者JSON数据的请求都是相对简单的,一些复杂的处理主要包括URL路径参数、文件上传、数组或者列表类型数据等。 另外,关于参数类型中存在日期类型属性(例如java.util.Date、java.sql.Date、java.time.LocalDate、java.time.LocalDateTime),解析的时候一般需要自定义实现的逻辑实现String-&gt;日期类型的转换。
511 0
Spring MVC 接收请求参数所有方式总结!
|
前端开发 Java 微服务
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题
|
前端开发 Java 数据库连接
Spring Boot 2.x基础教程:JSR-303实现请求参数校验
Spring Boot 2.x基础教程:JSR-303实现请求参数校验
152 0
Spring Boot 2.x基础教程:JSR-303实现请求参数校验