我们有一种情况, Controller 必须始终在每个请求中执行,以便在接下来执行所需的 Controller 时在模型中设置一些默认值。如何设置主 Controller 始终执行,包括同一请求中的其他 Controller ?
最佳答案
您可以创建一个基本 Controller 类,并在实际处理程序方法之前使用 @ModelAttribute
注解的方法,该方法会在每个请求上调用,例如
@ModelAttribute
public void everyRequest(WebRequest request, Model model) {
model.addAttribute("default", true);
}
剩下的就是从实际 Controller 扩展这个基本 Controller 类
如果您使用 Spring 4.x,更好的方法是使用 @ControllerAdvice
它可以帮助所有或选定的一组组件,并且可用于添加模型属性,应用常见的 init 绑定(bind)或错误处理。一个例子
@ControllerAdvice
class Advice {
@ModelAttribute
public void everyRequest(Model model) {
model.addAttribute("default", true);
}
}
关于java - 如何在 Spring MVC 中创建主 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33591556/