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代码:
<ul class="droprightMenu"> <li><a href="#">Category 1</a> <ul class="droprightMenu"> <li><a href="#">Category 1.1</a></li> <li><a href="#">Category 1.2</a></li> <li><a href="#">Category 1.3</a></li> <ul class="droprightMenu"> <li><a href="#">Category 1.3.1</a></li> <li><a href="#">Category 1.3.2</a></li> <li><a href="#">Category 1.3.3</a></li> <li><a href="#">Category 1.3.4</a></li> </ul> <li><a href="#">Category 1.4</a></li> </ul> </li> <li><a href="#">Category 2</a></li> <li><a href="#">Category 3</a></li> <ul class="droprightMenu"> <li><a href="#">Category 3.1</a></li> <li><a href="#">Category 3.2</a></li> <ul class="droprightMenu"> <li><a href="#">Category 3.2.1</a></li> <li><a href="#">Category 3.2.2</a></li> </ul> <li><a href="#">Category 3.3</a></li> <li><a href="#">Category 3.4</a></li> </ul> <li><a href="#">Category 4</a></li> </ul>
我不知道如何在JSP中遍历此列表。可能应该使用不同的JSTL循环或JSP scriptlet的某种组合来完成,也许要进行一些递归。感谢任何帮助。
您需要像这样填充模型:
public class Category{ private Integer id; private String name; private Category parentCategory; private List<Category> subCategories; ... //getters and setters }
在Servlet中,您需要具有类别LEVEL 1的LIST(Parent为NULL)。
List<Category> rootCategories = getAllCategoriesLevel1(); request.setAttribute("rootCategories", rootCategories );
在JSP中(需要3个循环或4,5个循环)
<c:forEach items="${rootCategories}" var="categoryLevel1"> // ... <c:forEach items="${categoryLevel1.subCategories}" var="categoryLevel2"> // ... <c:forEach items="${categoryLevel2.subCategories}" var="categoryLevel3"> // ... </c:forEach> // ... </c:forEach> // ... </c:forEach>