java - 如何在 Spring MVC 中创建主 Controller

标签 java spring-mvc

我们有一种情况, 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/

相关文章:

java - Java中的ValueErrors等?

java - 我可以将 List<Model> 传递给采用通用通配符 List<?> 的函数吗?

java - 我应该在 Spring 和 Android 中使用一种 Java 模型表示吗?

java - 如何对 spring mvc Controller 发送的 ResponseBody 或 ResponseEntity 进行单元测试?

java - 被攻击的 WordPress 网站

java - 如何将 DataTable 转换为另一种类型对象的 List 或 ArrayList

java - 将数据库任务与 Spring petclinic 应用程序分离

spring-mvc - Spring MVC : How can I set timezone per user?

java - 如何强制我的模板解析器对/mail/* 模板使用 ClassLoaderTemplateResolver

java - JSON 输出不遵循模型中的 JAXB 注释