Vla*_*mir 3 java jsp servlets jstl
MVC - servlet将请求转发给JSP.在servlet中我创建了类别的列表(java.util.List),将此列表附加到servlet上下文,并将请求转发到JSP页面:
public class Category{
private Integer id;
private String name;
private Category parentCategory;
...
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
此类表示类别/子类别(如果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>
Run Code Online (Sandbox Code Playgroud)
我不知道如何在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>
Run Code Online (Sandbox Code Playgroud)
在我们的主JSP页面中,初始化变量menuitem并包含jsp.
<c:set var="menuitem" value="${rootMenu}" scope="request" />
<jsp:include page="menuitem.jsp" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7115 次 |
| 最近记录: |