2012-03-21 79 views
0

我想检查显示标签表中的特定条件并显示或不显示特定列。c选择具有显示标签表的标签

<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
<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> 
+0

我不知道发生了什么事。它不适用于 0 && loginUserOrgId == ItemList.organisationid}”>>虽然它可以工作,但它根本不显示任何超链接。但是,如果我将其更改为 0 && loginUserOrgId!= ItemList.organisationid}”>它会显示真实条件行的Edit超链接。但第二个条件不是我想要的。 – kitokid 2012-04-04 02:23:38

+0

尝试打印它们的值来检查它们真正包含的内容。设置一个调试,或者简单地使用''或'<%out.println();%>'打印jsp中的对象。 – tusar 2012-04-04 06:01:22