[JAVA] Erstellen Sie Ihr eigenes Dienstprogramm mit Thymeleaf mit Spring Boot

Überblick

Am Beispiel von YearMonth werde ich zusammenfassen, wie Sie Ihr eigenes Dienstprogramm erstellen. Stellen Sie es schließlich in "$ {# yearmonths.format (hogeYm, 'yyyy-MM')}" zur Verfügung.

Nachtrag (zusätzlicher Hinweis)

Da Thymeleaf standardmäßig kein Dienstprogramm zum Betreiben der Datums- und Uhrzeit-API hat, wird YearMonth für das Beispiel verwendet. Es scheint jedoch ein offizielles Zusatzmodul zu geben (thymeleaf-extras-java8time), und es scheint besser, dieses für die Datums- und Uhrzeit-API zu verwenden. Thymeleaf- und Datums- und Zeit-API

Annahme

Erstellen des Utility-Körpers

Die Implementierung basierte auf Thymeleafs Daten.

public final class YearMonths {
    public String format(final YearMonth target, final String pattern) {
        if (target == null) {
            return null;
        }
        try {
            // org.thymeleaf.util.Verwenden Sie Validieren
            Validate.notEmpty(pattern, "Pattern cannot be null or empty");
            return target.format(DateTimeFormatter.ofPattern(pattern));
        } catch (final Exception e) {
            throw new TemplateProcessingException(
                    "Error formatting date with format pattern \"" + pattern + "\"", e);
        }
    }
}

Erstellen Sie Ihren eigenen Dialekt

Erstellen Sie einen Dialog zum Verwalten des Dienstprogramms für Datum und Uhrzeit

public class YearMonthDialect implements IExpressionObjectDialect {
    //Der Name, den Sie mit Thymeleaf verwenden möchten
    private static final String YEAR_MONTH_EXPRESSION_NAME = "yearmonths";

    //Namensverwaltung festlegen
    private static final Set<String> ALL_EXPRESSION_NAMES = new HashSet<String>(){
                {add(YEAR_MONTH_EXPRESSION_NAME);}
            };

    @Override
    public IExpressionObjectFactory getExpressionObjectFactory() {
        return new IExpressionObjectFactory() {
            @Override
            public Set<String> getAllExpressionObjectNames() {
                return ALL_EXPRESSION_NAMES;
            }

            @Override
            public Object buildObject(IExpressionContext context, String expressionObjectName) {
                //Verknüpfen Sie den Namen mit der Instanz Ihres eigenen Dienstprogramms
                if(expressionObjectName.equals(YEAR_MONTH_EXPRESSION_NAME)){
                    return new YearMonths();
                }
                return null;
            }

            @Override
            public boolean isCacheable(String expressionObjectName) {
                //Bei Bedarf implementiert
                return false;
            }
        };
    }

    @Override
    public String getName() {
        return "YearMonth";
    }
}

Registrierung im DI-Container

Der Dialekt muss im DI-Container registriert sein, um in SpringBoot verfügbar zu sein. Ich werde ein Beispiel für das Erstellen und Registrieren einer dedizierten Konfiguration schreiben.

@Configuration
public class ThymeleafConfiguration {
    @Bean
    public DateTimeDialect DateTimeDialect() {
        return new DateTimeDialect();
    }
}

Vorlage einrufen

Sie können es wie folgt aufrufen.

${#yearmonths.format(hogeYm,'yyyy-MM')}

Zusammenfassung

  1. Erstellen Sie ein Dienstprogramm
  2. Erstellen Sie einen Dialog zum Verwalten des Dienstprogramms
  3. Registrieren Sie Dialekt im DI-Container

Referenz

Recommended Posts

Erstellen Sie Ihr eigenes Dienstprogramm mit Thymeleaf mit Spring Boot
So erstellen Sie mit Spring Boot einen eigenen Controller, der / error entspricht
Erstellen Sie eine CRUD-App mit Spring Boot 2 + Thymeleaf + MyBatis
Erstellen Sie mit Spring Boot einen Mikrodienst
Erstellen Sie Ihren eigenen Validator mit Bean Validation
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Erstellen Sie mit Spring Boot eine einfache Such-App
Fügen Sie mit Spring Security Ihre eigenen Authentifizierungselemente hinzu
Erstellen Sie eine Spring Boot-Umgebung mit Windows + VS-Code
Erstellen Sie einen Web-API-Server mit Spring Boot
Mit Spring Boot herunterladen
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
Erstellen Sie Restapi mit Spring Boot (bis zum Ausführen der App)
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Rufen Sie Ihre eigene Methode mit PreAuthorize in Spring Security auf
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
[Java] Thymeleaf Basic (Spring Boot)
Erstellen Sie Ihre eigenen Java-Anmerkungen
Spring Boot beginnend mit Docker
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Mail mit Spring Boot verschicken
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
Bis INSERT und SELECT für Postgres mit Spring Boot und Thymianblatt
Verwenden Sie thymeleaf3 mit parent, ohne Spring-Boot-Starter-Parent in Spring Boot anzugeben
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Erstellen Sie mit JMeter Ihren eigenen Sampler
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Hot Deploy mit Spring Boot-Entwicklung
Erstellen Sie Ihre eigene Solr-Funktionsabfrage
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Erstellen Sie Ihre eigene Codierung für String.getBytes ()
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Zertifizierung / Autorisierung mit Spring Security & Thymeleaf
Verwendung von Thymeleaf mit Spring Boot
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
So wenden Sie Thymeleaf-Änderungen sofort mit #Spring Boot + maven auf den Browser an
Erstellen einer Spring Boot-Entwicklungsumgebung in Vagrant