从 tiles viewPreparer 中获取 objects 的列表
get list of objects from tiles viewPreparer
我创建了 ViewPreparer 的实现来获取类别列表。我需要在 header.
获取此列表
这是我的实现
public class CategoryMenuViewPreparer implements ViewPreparer {
@Override
public void execute(Request request, AttributeContext attributeContext) {
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = httpServletRequest.getSession();
User user = (User) session.getAttribute("user");
attributeContext.putAttribute("categories", new Attribute(user.getCategories()));
}
}
这是我的 tiles-definition
<definition name="CategoryPage" template="/WEB-INF/layouts/DefaultTemplate.jsp" preparer="ua.uzhhorodteam.cactiportal.handlers.CategoryMenuViewPreparer">
<put-attribute name="title" value="Category | TTE Web Portal"/>
<put-attribute name="header" value="/WEB-INF/fragments/defaultHeaderFragment.jsp"/>
<put-attribute name="footer" value="/WEB-INF/fragments/defaultFooterFragment.jsp"/>
<put-attribute name="body" value="/WEB-INF/views/categoryPage.jsp"/>
</definition>
那么,如何将 header 的类别列表写成菜单?
你可以使用
这样的 importAttributes 得到 "categories"
<tiles:importAttribute name="categories">
<c:forEach var="c" items=${categories}>
<c:out value="${c}"/>
</c:forEach>
我创建了 ViewPreparer 的实现来获取类别列表。我需要在 header.
获取此列表这是我的实现
public class CategoryMenuViewPreparer implements ViewPreparer {
@Override
public void execute(Request request, AttributeContext attributeContext) {
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = httpServletRequest.getSession();
User user = (User) session.getAttribute("user");
attributeContext.putAttribute("categories", new Attribute(user.getCategories()));
}
}
这是我的 tiles-definition
<definition name="CategoryPage" template="/WEB-INF/layouts/DefaultTemplate.jsp" preparer="ua.uzhhorodteam.cactiportal.handlers.CategoryMenuViewPreparer">
<put-attribute name="title" value="Category | TTE Web Portal"/>
<put-attribute name="header" value="/WEB-INF/fragments/defaultHeaderFragment.jsp"/>
<put-attribute name="footer" value="/WEB-INF/fragments/defaultFooterFragment.jsp"/>
<put-attribute name="body" value="/WEB-INF/views/categoryPage.jsp"/>
</definition>
那么,如何将 header 的类别列表写成菜单?
你可以使用
这样的 importAttributes 得到 "categories"<tiles:importAttribute name="categories">
<c:forEach var="c" items=${categories}>
<c:out value="${c}"/>
</c:forEach>