0

我正在使用 Sitemesh 在 Spring MVC 中开发我的网站。这是示例

我可以在模板定义中包含的每个页面、菜单和页脚都更改动态内容。但是问题来了。在动态内容下方的每个站点上,都应该有一个新闻列表,其中包含来自我的数据库的一些新闻。我创建了我的@Controller,它加载了 5 条最新消息,但是如何在我的模板中添加它?什么请求映射应该实现我的新闻控制器?

4

1 回答 1

1

我不知道 Sitemesh 是如何工作的,但我通过使用拦截器解决了这样的问题:

创建一个扩展类:HandlerInterceptorAdapter

覆盖方法postHandle并像这样填充 modelAndView 对象:

modelAndView.addObject("newslist",myNewsList);

因此,您将有一个变量$newslist注入到您的所有视图中。

不要忘记在你的 mvc-congig.xml 中声明 bean:

<bean id="newsListInterceptor" class="mypackage.NewsListInterceptor"/>

由于每个请求都会执行拦截器,因此我还使用 ehcache 来存储结果并避免在每次调用的数据库中进行选择期间。

于 2013-03-20T16:32:00.207 回答