【发布时间】:2015-12-09 11:43:10
【问题描述】:
我创建了@ControllerAdvice,它必须为我设置一些模型属性。
@ModelAttribute
public void globalAttributes(Model model) {
model.addAttribute("pageId", PAGE_ID);
}
这是我需要的通用示例,PAGE_ID 表示实际控制器必须设置的一些变量。由于@ControllerAdvice 在控制器之前运行,我如何声明这个变量并在 Advice 中使用它?如果有可能的话。
【问题讨论】:
-
我想你已经用“因为@ControllerAdvice 在控制器之前运行”回答了你自己的问题 - 你有没有办法在 ControllerAdvice 中设置 ModelAttribute,并在 Controller 中引用它?跨度>
-
我是这么认为的。关键是,我必须调用一个服务并传递该特定变量,这对于每个控制器都是不同的,并将返回结果设置为
@ControllerAdvice中的模型属性。 -
@DaveyDaveDave 我不确定你是对的。假设你使用
@ControllerAdvice来处理异常(官方例子中显示),怎么会是他之前运行过呢?我猜ControllerAdvice是另一个可用的控制器,它根据提供给方法的注释执行(例如@ExceptionHandling或@ModelAttribute)
标签: java spring spring-mvc