如何为每个页面调用一个方法?
问题内容:
我正在使用Spring MVC编写应用程序。我有一个从数据库返回值的方法。我想在网站的标题中显示这些值(显示在所有页面上)。我该怎么做?
我需要在每个控制器中调用此方法。
问题答案:
声明带有@ControllerAdvice
注释的类,然后声明带有@ModelAttribute
注释的方法。例如:
@ControllerAdvice
public class GlobalControllerAdvice {
@ModelAttribute
public void myMethod(Model model) {
Object myValues = // obtain your data from DB here...
model.addAttribute("myDbValues", myValues);
}
}
Spring MVC将在每个MVC控制器中的每个方法之前调用此方法。您将能够myDbValues
在所有页面中使用该属性。
本@ControllerAdvice
类应该在同一个Java命名空间,所有你的MVC控制器(以确保Spring可以自动检测)。
有关和注释的更多详细信息,请参见Spring
Reference
。@ControllerAdvice``@ModelAttribute