我想检查显示标记表中的某个条件,并显示或不显示特定列。
<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)}'/>
任何遗漏点?
答案 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>