MVC - servlet将请求转发给JSP.在servlet中我创建了类别的列表(java.util.List),将此列表附加到servlet上下文,并将请求转发到JSP页面:
public class Category{ private Integer id; private String name; private Category parentCategory; ... //getters and setters }
此类表示类别/子类别(如果parentCategory字段为null,则它是顶级类别).具有相同父级的类别是其子类别,并且它们将映射到JSP中的嵌套无序列表.示例:结果应与下一个HTML代码类似:
我不知道如何在JSP中遍历此列表.它可能应该使用不同的JSTL循环或JSP scriptlet的某种组合来完成,也许是一些递归.感谢任何帮助.
如果您不知道类别树的深度,仍然可以使用递归生成菜单.
在前一个响应中使用与Loc相同的模型,您必须定义一个名为jsp的页面menuitem.jsp
,该页面将被递归调用:
<li> <a href="#">${menuitem.name}</a> <c:if test="${fn:length(menuitem.subCategories) gt 0}"> <ul class="droprightMenu"> <c:forEach var="menuitem" items="${menuitem.subCategories}"> <c:set var="menuitem" value="${menuitem}" scope="request" /> <jsp:include page="menuitem.jsp" /> </c:forEach> </ul> </c:if> </li>
在我们的主JSP页面中,初始化变量menuitem并包含jsp.
<c:set var="menuitem" value="${rootMenu}" scope="request" /> <jsp:include page="menuitem.jsp" />