Thymeleafで文字列を返す方法について、以下のいくつかの方法を説明します。
- インラインテンプレートを使用する方法: Thymeleafでは、テンプレートを外部ファイルではなく、直接Javaのコード内で定義することもできます。これをインラインテンプレートと呼びます。以下は、インラインテンプレートを使用して文字列を返す例です。
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
public class ThymeleafExample {
public static void main(String[] args) {
TemplateEngine templateEngine = new TemplateEngine();
Context context = new Context();
context.setVariable("message", "Hello, Thymeleaf!");
String result = templateEngine.process("<p th:text=\"${message}\"></p>", context);
System.out.println(result);
}
}
上記の例では、TemplateEngine
を使用してインラインテンプレートを処理し、Context
オブジェクトに変数を設定しています。templateEngine.process
メソッドを使用して、インラインテンプレートを処理し、結果を文字列として取得しています。
- テンプレートエンジンをカスタマイズする方法:
Thymeleafでは、
ITemplateResolver
インターフェースを実装することで、独自のテンプレートリゾルバを作成することができます。このカスタムリゾルバを使用することで、文字列を返すことも可能です。
以下は、簡単な例です。
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.templateresolver.StringTemplateResolver;
import org.thymeleaf.context.Context;
public class ThymeleafExample {
public static void main(String[] args) {
TemplateEngine templateEngine = new TemplateEngine();
StringTemplateResolver templateResolver = new StringTemplateResolver();
templateEngine.setTemplateResolver(templateResolver);
Context context = new Context();
context.setVariable("message", "Hello, Thymeleaf!");
String template = "<p th:text=\"${message}\"></p>";
String result = templateEngine.process(template, context);
System.out.println(result);
}
}
上記の例では、StringTemplateResolver
を使用してテンプレートを文字列として扱い、TemplateEngine
に設定しています。その後、通常の方法でコンテキストを設定し、テンプレートを処理して結果を取得しています。
これらはThymeleafで文字列を返すための2つの一般的な方法です。他にもさまざまな方法がありますが、上記の方法が一般的なケースでの解決策として使用されることが多いです。