[JAVA] Einführung in Ratpack (9) - Thymeleaf

Ratpack Einführungsserie

  1. Einführung in Ratpack (1) - Was ist Ratpack
  2. Einführung in Ratpack (2) --Architecture
  3. Einführung in Ratpack (3) - Hallo Welt, ausführliche Erklärung
  4. Einführung in Ratpack (4) - Routing & statischer Inhalt
  5. Einführung in Ratpack (5) --Json & Registry
  6. Einführung in Ratpack (6) --Promise
  7. Einführung in Ratpack (7) - Guice & Spring
  8. Einführung in Ratpack (8) - Sitzung
  9. Einführung in Ratpack (9) - Thymeleaf

Thymeleaf

Ratpack bietet Module, die die Template-Engine Thymeleaf unterstützen.

build.gradle


dependencies {
    compile "io.ratpack:ratpack-thymeleaf:${ratpack}"
}

Fügen Sie ein Modul hinzu.

Function<Registry, Registry> registry = ratpack.guice.Guice.registry( bindings -> {
    bindings.module( new ThymeleafModule() );
} );

Standardmäßig erkennt das Thymeleaf-Modul * .html-Dateien unter $ {BaseDir} / thymeleaf als Vorlagen. Daher ist es notwendig, "BaseDir" zu setzen.

ServerConfig.builder()
            .development( true )
            .findBaseDir( "public/.ratpack" )

In diesem Fall wird "public / thymeleaf" als Vorlagenverzeichnis betrachtet.

Das Modul registriert einen "Renderer" für die "ratpack.thymeleaf.Template" -Klasse. Beachten Sie, dass es kein Renderer ** für Thymeleafs IContext ** ist. Template kann mit der Template.thymeleafTemplate () Methode erstellt werden.

Action<Chain> handlers = chain -> {
    chain.get( "/:name?", ctx -> {
        String name = ctx.getPathTokens().get( "name" );
        name = name.isEmpty() ? "world" : name;
        ctx.render( Template.thymeleafTemplate( ImmutableMap.of( "name", name ), "template" ) );
    } );
};

Die Zuordnung des ersten Arguments ist die Bindung des Parameters, und das zweite Argument ist der Name der Vorlage. Wenn "BaseDir" "public / .ratpack" ist, lautet die tatsächlich aufgelöste Datei "public / thymeleaf / template.html".

Die Vorlagendatei entspricht genau einem normalen Thymeleaf.

template.html


<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta content="text/html; charset=UTF-8" />
</head>

<body>
<h1 th:text="'hello, ' + ${name}"></h1>
</body>

</html>

Wie Sie sehen können, ist die Verwendung von Thymeleaf sehr einfach. Die Modulimplementierung selbst ist einfach zu erstellen, sofern Sie eine Klasse haben, die die Vorlage darstellt, und eine Implementierung des Renderers, der die Vorlagen-Engine umschließt. Ich denke, es wäre einfach, Velocity und andere Template-Engines mit einem ähnlichen Muster zu unterstützen.

Über die Version von Thymeleaf

~~ Die vom Ratpack-Beamten bereitgestellten Module sind derzeit (Februar 2018) bis Thymeleaf 2.1.5. Version 3 wird nicht unterstützt (ich habe es selbst implementiert, da es nicht geholfen werden kann - Werbung). ~~ Offiziell unterstützt in 1.6.0 und höher. Bitte benutzen Sie das.

Recommended Posts

Einführung in Ratpack (9) - Thymeleaf
Einführung in Ratpack (8) -Session
Einführung in Ratpack (6) --Promise
Einführung in Ratpack (2) -Architektur
Einführung in Ratpack (7) - Guice & Spring
Einführung in Ratpack (1) - Was ist Ratpack?
Einführung in Ruby 2
Einführung in web3j
Einführung in Micronaut 1 ~ Einführung ~
[Java] Einführung in Java
Einführung in die Migration
Einführung in Java
Einführung in Doma
Einführung in Ratpack (Extra Edition) - Mit Sentry
Einführung in Ratpack (3) - Hallo Welt, detaillierte Erklärung
Einführung in Ratpack (Extra Edition) - Ratpack in Kotlin geschrieben
Einführung in JAR-Dateien
Einführung in die Bitarithmetik
Einführung in PlayFramework 2.7 ① Übersicht
Einführung in das Android-Layout
Einführung in Entwurfsmuster (Einführung)
Einführung in die praktische Programmierung
Einführung in den Befehl javadoc
Einführung in den Befehl jar
Einführung in den Lambda-Stil
Einführung in den Java-Befehl
Einführung in die Keycloak-Entwicklung
Einführung in den Befehl javac
[Einführung in Spring Boot] Senden Sie ein Formular mit thymeleaf
Einführung in Entwurfsmuster (Builder)
Einführung in die Android App-Entwicklung
Einführung in Metabase ~ Umgebungskonstruktion ~
Siehe Aufzählung in Thymeleaf
(Punktinstallation) Einführung in Java8_Impression
Einführung in Entwurfsmuster (Composite)
Einführung in Micronaut 2 ~ Unit Test ~
Einführung in JUnit (Studiennotiz)
Einführung in Spring Boot ~ ~ DI ~
Einführung in Designmuster (Fliegengewicht)
[Java] Einführung in den Lambda-Ausdruck
Einführung in Spring Boot ② ~ AOP ~
Einführung in Apache Beam (2) ~ ParDo ~
Einführung in die EHRbase 2-REST-API
Einführung in Entwurfsmuster Prototyp
[Java] Einführung in die Stream-API
Einführung in Entwurfsmuster (Iterator)
Einführung in Spring Boot Teil 1
Einführung in Entwurfsmuster (Strategie)
[Einführung in Janken (ähnliche) Spiele] Java
Einführung in Linux Container / Docker (Teil 1)
Einführung in die schnelle Übungsausgabe Kapitel 5