循环遍历bean数组在JSTL中

时间:2012-03-16 12:38:23

标签: java jsp jstl

嘿伙计们我有一个回来的bean,bean中的一个属性是另一个bean的数组。

我可以很好地获取其他属性并在循环时显示在jsp上,但我需要将数组的内容输出。我知道我做错了,忘记了类似的东西的语法。

我最后一栏需要role.id。这就是我得到的:

JSP:

   <table class="data_table">
    <c:choose>
        <c:when test='${empty attachList}'>
           <tr>
              <td>No Attachments</td>
           </tr>
        </c:when>
        <c:otherwise>
            <tr>
                <th>Remove Attachment</th>
                <th>File Name</th>
                <th>File Type</th>
                <th>File Size (bytes)</th>
                <th>File Attached By</th>
                <th>Date/Time File Attached</th>
                <th>Roles</th>
            </tr>
            <c:forEach var="item" items="${attachList}" varStatus="loopCount">
                <tr>

                    <td class="button">
                    <rbac:check operation="<%=Operation.DELETE%>">
                        <button type="button"  onclick="javascript:delete_prompt(${item.id});">Delete</button>
                    </rbac:check>
                        </td>
                    <td><a href="show.view_hotpart_attachment?id=${item.id}">${item.fileName}</a></td>
                    <td>${item.fileType}</td>
                    <td><fmt:formatNumber value="${item.fileSize}" /></td>
                    <td>${item.auditable.createdBy.lastName}, ${item.auditable.createdBy.firstName}</td>
                    <td><fmt:formatDate value="${item.auditable.createdDate}" pattern="${date_time_pattern}" /></td>
                    <td>${item.roles}</td>

                </tr>
            </c:forEach>
        </c:otherwise>
    </c:choose>
    </table>

豆:

Bean类我在items="${attachList}"

中循环
private long id;
private String fileName;
private String fileType;
private int fileSize;
private Role[] roles;
private AuditableBean auditable;

/**
 * Constructor.
 */
public AttachmentShortBean()
{
}

public long getId() { return id; }

public String getFileName() { return fileName; }

public String getFileType() { return fileType; }

public int getFileSize() { return fileSize; }

public Role[] getRoles() { return roles; }

public AuditableBean getAuditable() { return auditable; } 

角色是另一个bean,它的getter是getName()getId()

我需要在最后一列中透露id的数组,但我只是得到一个内存位置......

1 个答案:

答案 0 :(得分:5)

您还需要遍历您的角色

<c:forEach items = "${item.roles}" var = "role">
   <c:out value = "${role.id}"/>
</c:forEach>

另一种可能性是

<c:out value = "${item.roles[0].id}"/>

如果您只是在寻找第一个角色。