So implementieren Sie einen ConversionService von LocalDateTime zu String im Spring BootJava

Java-Forum
Anonymous
 So implementieren Sie einen ConversionService von LocalDateTime zu String im Spring Boot

Post by Anonymous »

Ich habe einen Spring -Boot -Webapp, der Thymeleaf für HTML -Vorlagen und als Templating -Engine für E -Mails auch von dieser WebApp verwendet. In meiner E -Mail möchte ich ein LocalDatetime verwenden, der nicht funktioniert.Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1001E: Type conversion problem, cannot convert from java.time.LocalDateTime to java.lang.String
at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:87)
at org.springframework.expression.common.ExpressionUtils.convertTypedValue(ExpressionUtils.java:57)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:369)
at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:279)
... 49 common frames omitted
Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.time.LocalDateTime] to type [java.lang.String]
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:288)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:184)
at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:82)

< /code>
Ich habe bereits versucht, eine @Bean mit einer @Configuration zu verwenden, um den folgenden Konverter zu registrieren: < /p>
public class LocalDateTimeConverter implements Converter, ConditionalConverter {

@Bean
public LocalDateTimeConverter ldtConverter() {
return new LocalDateTimeConverter();
}

@Override
public String convert(LocalDateTime source) {
return source.format(DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss"));
}

@Override
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (sourceType.getType() == LocalDateTime.class && targetType.getType() == String.class ) {
return true;
} else {
return false;
}
}
}
< /code>
Ich habe auch versucht, (ein anderes) localDatetimeConverter2 in der ThymeleAtemplateEngine zu registrieren, auf die beim Senden einer E -Mail direkt verwiesen wird. < /p>
public class LocalDateTimeConverter2 extends GenericConversionService
implements ConditionalConverter, ConfigurableConversionService, ConversionService {

LocalDateTimeConverter2() {
}

@Override
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
return (Object) (((LocalDateTime) source).format(DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss")));
}

@Override
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
if (sourceType.getType() == LocalDateTime.class && targetType.getType() == String.class) {
return true;
} else {
return false;
}
}

public static boolean matches(Class

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post