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 という値が使えるようになります。
