c选择带有显示标签表的标签

时间:2012-03-21 03:58:35

标签: jsp jstl displaytag

我想检查显示标记表中的某个条件,并显示或不显示特定列。

<display:table class="displayTable" id="ItemList" 
    name="${sessionScope.myList}" requestURI="list.action" 
    pagesize="15" defaultsort="2" defaultorder="ascending" sort="list">
    <c:choose>
        <c:when test="${(loginUserOrgId > 0) and (loginUserOrgId==ItemList.organisationid)}">
            <display:column class="colOp" href="edit.action" paramId="itemId"
                 paramProperty="itemId">Edit</display:column>
        </c:when>
    </c:choose>
</display:table>

但它从不显示编辑链接。当我用c:out打印出值时,它为TRUE。但是虽然条件为真,但“编辑”列不会显示。

 <c:out value='${(loginUserOrgId > 0) and (loginUserOrgId==ItemList.organisationid)}'/>

任何遗漏点?

1 个答案:

答案 0 :(得分:1)

<c:out value='${(loginUserOrgId > 0) and (loginUserOrgId==ItemList.organisationid)}'/>

正在打印TRUE

但是当你使用这个时它会打印出来吗?

<c:if test='${loginUserOrgId > 0 && loginUserOrgId==ItemList.organisationid}'/>
     true
</c:if>

始终在JSTL

中使用&&运算符进行条件和检查

此外,您只有一个if-checking。您没有else条件。那么为什么不使用这样简单的<c:if>标签:

<display:table class="displayTable" id="ItemList" 
    name="${sessionScope.myList}" requestURI="list.action" 
    pagesize="15" defaultsort="2" defaultorder="ascending" sort="list">

    <c:if test="${loginUserOrgId > 0 && loginUserOrgId == ItemList.organisationid}">
        <display:column class="colOp" href="edit.action" paramId="itemId"
             paramProperty="itemId">Edit</display:column>
    </c:if>
</display:table>

仅在您需要<c:choose> --- if --- else if条件检查时使用else

<c:choose> 
    <c:when test="${condition}">
         true value
    </c:when>
    <c:otherwise>
         false value
    </c:otherwise>
</c:choose>