[Capítulo SSM-SpringMVC] 06-Conversión de formato de fecha, fecha de back-end a json, json de front-end a fecha

1. Conversión de formato de cadena a fecha SpringMVC

  SpringMVC no admite la conversión de cadenas de fecha en la página (similar a 2020-10-14 y 2020/10/14) a la fecha de fondo.

1.1 @DateTimeFormat()Realice la conversión de formato de fecha a través de anotaciones . 【 *** Uso recomendado】

  Conversor de tipo de fecha de anotación (agregue una nota al atributo de Fecha que debe convertirse al formato de fecha):@DateTimeFormat("需要转换的格式")

 出生日期<input type="date" name="birthday"/><br/>
public User{
    
    
private int id;
  private String username;
  private double password;
  //注解将yyyy-MM-dd的形式转换为Date数据,具体什么格式要看传入参数格式,就是发送请求,查看请求参数的表单数据,看birthday数据的格式
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date birthday;
}

Verifique el encabezado de la solicitud y descubra que el formato de la fecha de entrada es un
yyyy-MM-ddformato, según la información de la solicitud.Inserte la descripción de la imagen aquí



1.2 Escriba una implementación de convertidor personalizado Convertery realice la conversión de tipos mediante métodos de reescritura.

1.2.1 Escriba un convertidor personalizado para implementar la Converterinterfaz
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

 /*自定义类型参数转换器: 将字符串日期格式转成Date类型的数据.
      Converter<S,T>  S: 代表的是源,将要转换的数据类型  T:目标类型,将会转成什么数据类型
 */
 //日期格式转换器
public class DateFormatConverter implements Converter<String,Date>{
    
    
  //转换方法
  //String source 将会传递过来的日期的字符串
  public Date convert(String source) {
    
    
   //参数填写为你想要转换的数据格式
​    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {
    
    
​      Date date = sdf.parse(source);return date;} catch (ParseException e) {
    
    
​      e.printStackTrace();}return null;
  }
1.2.2 Configure la fábrica de conversión en springmvc.xml y configure el convertidor a la colección de convertidores
<bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"><property name="converters"><set><bean id="dateFormatConverter" class="com.itheima.converter.DateTimeFormatConverter"></bean></set></property>
  </bean>
1.2.3 Monte el objeto de conversión de fábrica en el adaptador de procesador ( springmvc.xml)
		<!-- 这个service的值要和你创建的转换器的bean的id一致 -->
		<mvc:annotation-driven conversion-service="formattingConversionService"/>


2. Etiquetas de formato de fecha SpringMVC, fecha a la conversión de formato especificado (usado en jsp)

2.1 Necesidad de dependencia jstl

		<dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

2.2 Importar etiquetas en la página jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

2.3 Etiqueta de fmtetiqueta de formato de fecha de llamada (Importe el prefijo que establezca)

<fmt:formatDate value="${User.birthday}" pattern="yyyy-MM-dd-"/>
De esta manera, el formato de datos de fecha que pasa en el backend es el formato aaaa-MM-dd

2.4 Simplemente agregue un @DateTimeFormat(pattern = "yyyy-MM-dd")comentario sobre la fecha en segundo plano

//这个pattern需要和你传入的数据格式一致
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthDay;

Supongo que te gusta

Origin blog.csdn.net/qq_40542534/article/details/109053413
Recomendado
Clasificación