通常在构建页面时,您会为该页面构建一个控制器,其中 RequestMapping 与 URL 以及 RequestMethod.GET 相关联,您可以在其中设置需要在页面上显示的变量。
我所拥有的是一个新闻小部件,它将显示在每个页面上,如果它只显示在一个页面上,我会做类似的事情:
@Controller
@RequestMapping("/news")
public class NewsController {
@RequestMapping(method = RequestMethod.GET)
public String setupForm(
HttpServletRequest request,
@Valid @ModelAttribute("RA") RA ra,
ModelAndView modelAndView,
Model model) {
// do some stuff to ra, put values in model, ....
}
}
在 JSPX 页面上,我会有类似的内容:
<c:forEach var="article" items="${newsarticles}" >
<h1>${article.title}</h1>
${article.body}
<br />
</c:forEach>
我要解决的问题是如何在所有页面甚至主模板中复制上述 JSPX 片段,而无需在 RequestMapping 中明确列出大量 URL。
在 JSF 中,我会简单地使用 #{newsBean.newsarticles},它适用于所有页面。
请求拦截器可以工作,但是没有 RequestInterceptor 是否有更好的方法来做到这一点,或者 RequestInterceptor 是我唯一的选择吗?