java - (Java) 不使用参数或 ModelAndView 访问 Spring Model

标签 java spring model-view-controller parameters model

对不起,这个标题。我想不出更好的措辞。

是否有任何方法可以设置 Spring 将提供页面的默认模型,而无需首先将其作为 @RequestMapping 方法中的参数进行检索?

我使用方面来获取 Controller 方法的返回值(返回 View )并将其插入到模型中,然后渲染一个不同的全局 View ,其中包含我添加到模型中的内容。这对于请求模型作为参数的方法来说效果很好。

但是,我还希望能够捕获所有未显式请求模型的方法,并且仍然将返回值插入其中(通过 @AfterReturning 建议)。有什么想法吗?

最佳答案

我不会在 HttpServletRequest 上使用@Autowired,因为它会让 future 处理线程安全代码的开发人员感到困惑。

相反,您应该使用@ModelAttributeInterceptor

@ModelAttribute

参见: http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-ann-modelattrib-method-args

但是您可以执行类似的操作并将此方法添加到您的 Controller 中:

@ModelAttribute
public preloadModel(HttpServletRequest request, ModelMap model) {
    //Add stuff to model.
}

拦截器

参见:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-handlermapping-interceptor

public class PreloadModelInterceptor extends HandlerInterceptorAdapter {

    @Override
    public void postHandle(HttpServletRequest request, 
                       HttpServletResponse response, 
                       Object handler,
        ModelAndView modelAndView) throws Exception {
    // add model attibutes for your view to see but not your controller
    }
}

关于java - (Java) 不使用参数或 ModelAndView 访问 Spring Model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666494/

相关文章:

java - 文件到数组到 JTable(索引越界)

java - DFS期间重新访问节点并控制无限循环

spring data redis查询方法

java - Java 中的类和继承——我做错了什么?

java - 使用 CCDT 连接 Tomcat 到 MQ 服务器 | 64位

java - GetSharedPreferences 获取 session ID

java - 我尝试使用 spring.io Social 访问 Facebook,但 isAuthorized() 方法失败

java - 如何将 Hibernate 与映射到不同数据库的自定义字段类型一起使用?

ruby-on-rails - 正如 Ruby Guides 要求我考虑的那样,我真的应该使用观察者吗?

Javascript简单MVC+模块模式实现