Spring で、 全ての画面に共通に出力する値を設定する方法です。
例えば画面の左上に、 “Production”, “Environment” などの環境名や、 時刻に応じた「おはようございます」「こんにちは」という挨拶を表示することを考えます。 @ModelAttribute
を使用して実現します。
サンプルコード
コントローラが必ず継承するべきクラスを作ります。 ここでは BaseController
という名前にします。 そして、 @ModelAttribute
を設定します。
1 2 3 4 5 6 7 |
@Controller open class BaseController { @ModelAttribute("sampleValue") fun sampleValue(): String { return "sample" } } |
Kotlin で書いていますが Java でも同じことです。 パッケージ名は省略しています。
そして、他のコントローラは必ずこの BaseController
を表示します。 すると、 Thymeleaf では sampleValue
という値が使えるようになります。