如何为每个页面调用方法?

Muf*_*anu 4 spring-mvc

我正在使用Spring MVC编写应用程序.我有一个从数据库返回值的方法.我想在网站的标题中显示这些值(显示在所有页面上).我怎么能这样做?

我需要在每个控制器中调用此方法.

Ale*_*xey 12

使用@ControllerAdvice注释声明一个类,然后使用注释声明一个方法@ModelAttribute.例如:

@ControllerAdvice
public class GlobalControllerAdvice {

  @ModelAttribute
  public void myMethod(Model model) {

    Object myValues = // obtain your data from DB here...

    model.addAttribute("myDbValues", myValues);
  }
}
Run Code Online (Sandbox Code Playgroud)

Spring MVC将在每个MVC控制器中的每个方法之前调用此方法.您将能够myDbValues在所有页面中使用该属性.

@ControllerAdvice类应该在同一个Java命名空间,其中所有的MVC控制器(以确保Spring可以自动检测).

有关更多详细信息和注释,请参阅Spring参考.@ControllerAdvice@ModelAttribute