読者です 読者をやめる 読者になる 読者になる

be-hase blog

うぇーい!うぇいーーーい!!

SpringのModelに共通な値(デフォルト値)を入れたいとき

開発環境依存の定数とかといったような共通な値をmodelに入れたいときがある。
(static fileのURLとか)

実は@ControllerAdvice@ModelAttributeが使用できるみたい。
(@ExceptionHandlerとか@InitBinderでしか使ったことなかった。)

@ControllerAdvice
public class ControllerAdvice {

    @ModelAttribute
    public void addDefaults(Model model) {
        model.addAttribute("hoge", "hoge");
    }
}

今まで、Interceptor使って埋め込んだり、FreeMarkerConfigurerにsetFreemarkerVariablesとかしていたけど、こっちのほうがスッキリする気はする。