首页 > 其他分享 >SpringMVC 类型转换

SpringMVC 类型转换

时间:2023-10-06 12:55:40浏览次数:35  
标签:类型转换 String SpringMVC pattern Date date import

SpringMVC 类型转换

Spring引入通用的数据类型转换系统,其定义了SPI接口和相应的运行时执行类型转换的API,提供无状态、强类型其可以在任意类型之间进行类型转换,可以用于任何需要的地方(如SpEL、数据绑定等)

内置类型转换器

image

<!--开启类型转换服务-->
<mvc:annotation-driven conversion-service="conversionService"/>
<!--装配自定义转换类Bean-->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="com.tobie.converter.StringToDateConverter"/>
        </list>
    </property>
</bean>

自定义类型转换器

package com.tobie.converter;

import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Tobieance
 * @description 自定义字符串到日期转换类
 * @date 2023-09-13 16:41
 */
@Component
public class StringToDateConverter implements Converter<String, Date> {
    @Override
    public Date convert(String s) {
        Date date = null;
        try {
            String pattern = "FALSE";
            String pattern1 = "\\d{4}-\\d{1,2}-\\d{1,2}";
            String pattern2 = "\\d{4}/\\d{1,2}/\\d{1,2}";
            if (s.matches(pattern1)) {
                pattern = "yyyy-MM-dd";
            } else if (s.matches(pattern2)) {
                pattern = "yyyy/MM/dd";
            } else {
                System.out.println(pattern);
                return null;
            }
            SimpleDateFormat format = new SimpleDateFormat(pattern);
            date = format.parse(s);
            //可以使用正则表达式判断日期字符串格式是否合法(支持yyyy-MM-dd和yyyy/MM/dd)
        } catch (Exception e) {
            e.printStackTrace();
        }
        return date;
    }

    //测试自定义类型转换器
    public static void main(String[] args) {
        //创建类型转换服务实例
        GenericConversionService genericConversionService = new GenericConversionService();
        //向类型转换服务实例中注册自定义类型转换器
        genericConversionService.addConverter(new StringToDateConverter());
        String dateString = "2023-09-01";
        Date date = genericConversionService.convert(dateString, Date.class);
        System.out.println(date);
    }
}

标签:类型转换,String,SpringMVC,pattern,Date,date,import
From: https://www.cnblogs.com/tobieance/p/17744455.html

相关文章

  • SpringMVC
    1、SpringMVC的工作原理?(1)用户向服务器发送请求,请求被springMVC前端控制器捕获;(2)前端控制器对请求URL进行解析,得到请求资源标识符(URL)然后根据该URL调用页面处理器获得该Handler配置的所有相关对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChai......
  • springmvc的工作流程
    1、springmvc工作原理图    2、springmvc工作流程1、用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Co......
  • SpringMVC使用@Valid注解实现数据验证
    一、@Valid注解的作用@Valid注解是javax.validation包中的一个注解,它可以用来标注需要验证的数据对象。当一个带有@Valid注解的对象传递给SpringMVC的控制器方法时,SpringMVC会自动调用验证器来验证这个对象。二、数据验证的流程SpringMVC中的数据验证流程如下:......
  • SpringMVC拦截器
     1.拦截器接口 2.工作流程 3.配置拦截器1<!--配置拦截器(可多个)-->2<mvc:interceptors>3<mvc:interceptor>4<!--设置拦截器要拦截的url地址-->5<mvc:mappingpath="/user/**"/>6<!--设置拦截器不拦截的url地址-->7......
  • SpringMVC异常处理
     @ControllerAdvice没有切点只有增强1.全局统一异常处理类1packagecom.cn.globalexpction;23importorg.springframework.ui.ModelMap;4importorg.springframework.web.bind.annotation.ControllerAdvice;5importorg.springframework.web.bind.annotation.......
  • SpringMVC resultful架构风格
     <inputtype="hidden"name="_method"value="DELETE"/>  1.RestfulController.java 1packagecom.cn.restful;23importorg.springframework.stereotype.Controller;4importorg.springframework.ui.ModelMap;5......
  • 手动开发-实现SpringMVC底层机制--小试牛刀
    在这里说的底层机制的实现主要是指:前端控制器、Controller、Service注入容器、对象自动装配、控制器方法获取参数、视图解析、返回json数据。前端控制器前端控制器就是核心控制器。在这里我们可以设计一个Servlet来充当核心控制器:LingDispatcherServlet.java.这个控制器的作用......
  • springMVC自定义校验注解
     1.定义注解校验器PhoneNoValidator.java1/**2*@Authorhxy3*@Description4*@Date2023/9/1410:485*@Version1.06*/7publicclassPhoneNoValidatorimplementsConstraintValidator<PhoneNo,String>{8@Override9publicvo......
  • springMVC类型转换器
    Spring引入通用的数据类型转换系统,其定义了sPI接口和相应的运行时热行类型转换的API,提供无状态,强类型可以在任意类型之间进行类型转换,可以用于任向需要的地方(如SpEL、数据绑定等) 1.配置自定义类型转换服务 2.日期类型转换器 ......
  • springMVC数据校验
    应用程序在执行业务逻辑前,必须通过数据校验保证接收的输入数据时正确合法的。1.JRS303  2.@Valid校验注解(获取校验结果)DepositDto.java1@Data2@AllArgsConstructor3@NoArgsConstructor4publicclassDepositDto{5@NotEmpty(message="账号不能为......