JSP和JSTL根据规则有条件地在表中呈现行

时间:2013-03-26 04:45:57

标签: java jsp jstl

我在JSP页面中有以下内容

 <table border=1>
        <thead>
            <tr>
                <th>User Id</th>
                <th>First Name</th>                
                <th>DOB</th>                
                <th colspan=2>Action</th>
            </tr>
        </thead>
        <tbody>
            <c:forEach items="${users}" var="user">
                <tr>
                    <td><c:out value="${user.userid}" /></td>
                    <td><c:out value="${user.firstName}" /></td>                    
                    <td><fmt:formatDate pattern="dd-MMM-yy" value="${user.dob}" /></td>                    
                    <td><a href="UserController?action=edit&userId=<c:out value="${user.userid}"/>">Update</a></td>
                    <td><a href="UserController?action=delete&userId=<c:out value="${user.userid}"/>">Delete</a></td>
                </tr>
            </c:forEach>
        </tbody>
    </table>
<p><a href="UserController?action=insert">Add User</a></p>

通过点击添加用户按钮,普通用户只能输入10行,管理员可以在表格中输入任意数量的行。

管理员添加的行只能由管理员查看,普通用户添加的所有其他行只能查看,但普通用户无法查看管理员添加的行。

如何根据上述规则有条件地在JSP中呈现行?

谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用<c:if>标记有条件地显示数据。像这样:

<c:forEach items="${users}" var="user">
    <c:if test="${user.role != 'admin'}">
        <!-- code here -->
    </c:if>
</c:forEeach>

此外,我相信如果已添加的用户数为10且用户当前用户不是管理员,则需要有条件地禁用添加用户链接。