【问题标题】:Iterate multilevel collection in jsp在jsp中迭代多级集合
【发布时间】:2015-03-26 07:17:34
【问题描述】:

我发现在 jsp 上迭代多级集合时遇到困难。

@Entity
@Table(name = "Establishment")
public class Establishment extends Basis<Long> {

@Column(name = "code")
private Long code;    // will be used for link to the entity if the name will be updated
@Column(nullable = false)
private String name;
private String establishmentType;

@ManyToOne(optional = true)
private Establishment establishment;
@Column(name = "establishment_id", insertable = false, updatable = false)
private Long establishmentId;

@OneToMany(mappedBy = "establishment", orphanRemoval = true, cascade = CascadeType.ALL)
private List<Establishment> establishments = new ArrayList<>();

//getters & setters
}

jsp代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page session="true" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %>

<myTags:hierarchy list="${establishmentList}"/>

标签文件:

<%@ attribute name="list" required="true" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:if test="${!empty list}">
<ul>
    <c:forEach var="entity" items="${list}">
        <li><c:out value="${entity.name}"/></li>
        <%--${fn:length(e.establishments)}--%>
        <myTags:hierarchy list="${entity.establishments}"/>
    </c:forEach>
</ul>
</c:if>

如果我在&lt;c:forEach var="entity" items="${list}"&gt; 中使用“列表”,比如here,我不能使用${entity.name},如果使用&lt;c:forEach var="entity" items="${establishmentList}"&gt;,我会递归调用第一个元素。那么,我应该如何编辑标签文件以使其工作?

【问题讨论】:

    标签: java jsp collections multi-level


    【解决方案1】:

    目前还没有解决方案:)

    &lt;%@ attribute name="list" required="true" %&gt; 行负责配置我们要迭代的类型。如果我们想用 ArrayList 操作(这种情况下)我们应该使用&lt;%@ attribute name="list" type="java.util.ArrayList&lt;by.ipps.accounting.model.Establishment&gt;" required="false" %&gt;

    我找到了“类型”参数here的想法,但事情似乎不一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-23
      • 2022-01-02
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2023-04-05
      • 2010-10-04
      相关资源
      最近更新 更多