[Chapitre SSM-SpringMVC] 06-Date de conversion du format, back-end Date en json, front-end json to Date

1. Conversion de la chaîne SpringMVC en format de date

  SpringMVC ne prend pas en charge la conversion des chaînes de date sur la page (similaire à 2020-10-14 et 2020/10/14) en date d'arrière-plan.

1.1 @DateTimeFormat()Réaliser la conversion du format de date grâce aux annotations . 【 *** Utilisation recommandée】

  Convertisseur de type de date d'annotation (ajoutez une note à l'attribut Date qui doit être converti au format de date):@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;
}

Vérifiez l'en-tête de la demande et constatez que le format de la date d'entrée est un
yyyy-MM-ddformat, en fonction des informations de la demande.Insérez la description de l'image ici



1.2 Ecrire une implémentation de convertisseur personnalisée Converteret effectuer une conversion de type en réécrivant des méthodes.

1.2.1 Ecrire un convertisseur personnalisé pour implémenter l' Converterinterface
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 Configurer la fabrique de conversion dans springmvc.xml et définir le convertisseur sur la collection de convertisseurs
<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 Monter l'objet d'usine de conversion sur l'adaptateur de processeur ( springmvc.xml)
		<!-- 这个service的值要和你创建的转换器的bean的id一致 -->
		<mvc:annotation-driven conversion-service="formattingConversionService"/>


2. Balises de mise en forme de la date SpringMVC, date à la conversion de format spécifiée (utilisée dans jsp)

2.1 Besoin d'une dépendance jstl

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

2.2 Importer des balises dans la page jsp

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

2.3 fmtÉtiquette d' étiquette de mise en forme de la date d'appel (importez le préfixe que vous avez défini)

<fmt:formatDate value="${User.birthday}" pattern="yyyy-MM-dd-"/>
De cette façon, le format de données de date que vous passez dans le backend est le format aaaa-MM-jj

2.4 Ajoutez simplement un @DateTimeFormat(pattern = "yyyy-MM-dd")commentaire sur la date en arrière-plan

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

Je suppose que tu aimes

Origine blog.csdn.net/qq_40542534/article/details/109053413
conseillé
Classement