[JAVA] Introduction à Ratpack (9) --Thymeleaf

Série d'introduction Ratpack

  1. Introduction à Ratpack (1) - Qu'est-ce que Ratpack
  2. Introduction à Ratpack (2) --Architecture
  3. Introduction à Ratpack (3) - Explication détaillée de Hello world
  4. Introduction à Ratpack (4) --Routage et contenu statique
  5. Introduction à Ratpack (5) --Json & Registry
  6. Introduction à Ratpack (6) - Promise
  7. Introduction à Ratpack (7) --Guice & Spring
  8. Introduction à Ratpack (8) - Session
  9. Introduction à Ratpack (9) --Thymeleaf

Thymeleaf

Ratpack fournit des modules qui prennent en charge le moteur de modèles Thymeleaf.

build.gradle


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

Ajoutez un module.

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

Par défaut, le module Thymeleaf reconnaît les fichiers * .html sous $ {BaseDir} / thymeleaf comme modèles. Par conséquent, il est nécessaire de définir BaseDir.

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

Dans ce cas, public / thymeleaf est considéré comme le répertoire des modèles.

Le module enregistre un Renderer pour la classe ratpack.thymeleaf.Template. Notez qu'il ne s'agit pas d'un moteur de rendu ** pour ʻIContext** de Thymeleaf.Template peut être créé à partir de la méthode Template.thymeleafTemplate ()`.

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" ) );
    } );
};

La carte du premier argument est la liaison du paramètre et le deuxième argument est le nom du modèle. Si «BaseDir» est «public / .ratpack», le fichier résolu réel sera «public / thymeleaf / template.html».

Le fichier modèle est exactement le même qu'un Thymeleaf ordinaire.

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>

Comme vous pouvez le voir, utiliser Thymeleaf est très simple. L'implémentation du module elle-même est facile à créer, tant que vous avez une classe qui représente le modèle et une implémentation du moteur de rendu qui encapsule le moteur de modèle. Je pense qu'il serait facile de prendre en charge Velocity et d'autres moteurs de modèles avec un modèle similaire.

À propos de la version de Thymeleaf

~~ Les modules fournis par le responsable Ratpack sont actuellement (février 2018) jusqu'à Thymeleaf 2.1.5. Il ne prend pas en charge la version 3 (je l'ai implémenté moi-même car il ne peut pas être aidé - Publicité). ~~ Officiellement pris en charge dans 1.6.0 et versions ultérieures. Veuillez utiliser cela.

Recommended Posts

Introduction à Ratpack (9) --Thymeleaf
Introduction à Ratpack (8) - Session
Introduction à Ratpack (6) - Promesse
Introduction à Ratpack (2) -Architecture
Introduction à Ratpack (7) --Guice & Spring
Introduction à Ratpack (1) - Qu'est-ce que Ratpack?
Introduction à Ruby 2
Introduction à web3j
Introduction à Micronaut 1 ~ Introduction ~
[Java] Introduction à Java
Introduction à la migration
Introduction à Java
Introduction à Doma
Introduction à Ratpack (Extra Edition) - Utilisation de Sentry
Introduction à Ratpack (3) - Explication détaillée de Hello World
Introduction à Ratpack (Extra Edition) --Ratpack écrit en Kotlin
Introduction aux fichiers JAR
Introduction à l'arithmétique des bits
Introduction à PlayFramework 2.7 ① Présentation
Introduction à la mise en page Android
Introduction aux modèles de conception (introduction)
Introduction à la programmation pratique
Introduction à la commande javadoc
Introduction à la commande jar
Introduction au style lambda
Introduction à la commande java
Introduction au développement de Keycloak
Introduction à la commande javac
[Introduction à Spring Boot] Soumettez un formulaire à l'aide de thymeleaf
Introduction aux modèles de conception (Builder)
Introduction au développement d'applications Android
Introduction à la métabase ~ Construction de l'environnement ~
Reportez-vous à enum dans Thymeleaf
(Installation par points) Introduction à Java8_Impression
Introduction aux modèles de conception (composite)
Introduction à Micronaut 2 ~ Test unitaire ~
Introduction à JUnit (note d'étude)
Introduction à Spring Boot ① ~ DI ~
Introduction aux modèles de conception (poids mouche)
[Java] Introduction à l'expression lambda
Introduction à Spring Boot ② ~ AOP ~
Introduction à Apache Beam (2) ~ ParDo ~
Introduction à l'API EHRbase 2-REST
Introduction au prototype de modèles de conception
[Java] Introduction à l'API Stream
Introduction aux modèles de conception (Iterator)
Introduction à Spring Boot, partie 1
Introduction aux modèles de conception (stratégie)
[Introduction aux jeux Janken (comme)] Java
Introduction à Linux Container / Docker (Partie 1)
Introduction à la pratique rapide Chapitre 5