首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用参数或ModelAndView访问Spring Model

不使用参数或ModelAndView访问Spring Model
EN

Stack Overflow用户
提问于 2012-12-02 12:48:23
回答 2查看 470关注 0票数 0

很抱歉标题有误。我想不出更好的措辞了。

有没有办法设置Spring将提供页面的默认Model,而不首先在@RequestMapping方法中将其作为参数检索?

我使用方面来获取控制器方法的返回值(返回视图),并将其插入到模型中,然后呈现一个不同的全局视图,其中包括我添加到模型中的内容。这在将Model作为参数请求的方法上工作得很好。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-03 06:14:14

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

相反,您应该使用@ModelAttributeInterceptor

@ModelAttribute

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

但是您可以这样做,并将此方法添加到您的控制器中:

代码语言:javascript
运行
复制
@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

代码语言:javascript
运行
复制
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
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-12-03 00:16:44

好吧,我找到了一个变通方法。或者,这也可能是底层Spring框架所做的一切。我只是在HttpServletRequest中自动连接并调用了setAttribute。似乎工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13666494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档