我想在所有页面中显示 category 列表。我有这个代码用于显示 nav.jsp :
中的项目<c:forEach var="category" items="${categoryList}">
<p><a href="showCategory?id=${category.id}">${category.title}</a></p>
</c:forEach>
我在控制器请求映射方法中使用此代码将值绑定到page:
model.addObject("categoryList", postCategoryList);
我已将 nav.jsp 添加到主.jsp文件中,但它运行正常,但我有很多控制器和页面。对于所有控制器和请求方法,如何仅绑定categoryList
值一次?
答案 0 :(得分:1)
使用if
。
HandlerInterceptor
在config xml文件中,添加:
public class CategoryListAddInterceptor extends HandlerInterceptorAdapter {
@Autowired
private CategoryDao categoryDao; //for example
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
modelAndView.getModel().put("categoryList", categoryDao.getPostCategoryList());
}
}
<强>更新强>
正如您在调用<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/demo/**"/> <!-- can add exclude patterns if needed -->
<bean class="package.name.CategoryListAddInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
时获得NullPointerException
一样,您可以这样做来实现同样的目标:
modelAndView.getModel()