Spring MVC 和模板变量

Posted

技术标签:

【中文标题】Spring MVC 和模板变量【英文标题】:Spring MVC and Template Variables 【发布时间】:2011-05-20 16:58:09 【问题描述】:

将 Spring MVC 3.0 与 sitemesh 和 freemarker 结合使用。

我正在尝试让当前登录用户的用户名显示在 sitemesh 装饰器的顶部。

那么,问题是如何将此变量公开给我的所有(或部分)控制器?

我可以手动将它添加到我的所有模型中,但这似乎不切实际:

ModelAndView mav = new ModelAndView("test");
mav.addObject("user", userName);
return mav;

特别是如果我想让模板更加动态。

在 struts 中,这是通过从基础动作扩展所有动作,并将 getUser 方法添加到基础来完成的,但我不知道如何在 spring 中做到这一点。

有什么想法吗?

谢谢! 蒂姆

【问题讨论】:

你用的是什么风格的控制器? @Controller,还是旧的 Spring 2.0 Controller 类层次结构? 你在使用 Spring Security 吗? 【参考方案1】:

有关如何使用 Spring 拦截器完成此操作的示例,请参阅 http://blog.humandoing.net/2006/03/06/interceptors-in-spring/

【讨论】:

以上是关于Spring MVC 和模板变量的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC + Thymeleaf:将变量添加到所有模板的上下文中

Spring MVC 和 Facelets 等模板引擎

Spring MVC、Tiles2、ThymeLeaf 和自然模板

spring mvc 整合jsp和thymeleaf两个模板引擎

Spring-Boot MVC 模板未加载(未找到 404)

使用 REST 模板和 JSON 响应格式在 Spring MVC 上返回 Http Status 500