2012-03-21 10 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> 

も常に一つだけif-checkingを持ってJSTL

の条件とチェックするため&&演算子を使用します。あなたはelseの条件がありません。あなたが条件のチェックなどのif --- --- else ifelseが必要な場合にのみ、

<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>:では、なぜこのようなシンプルな<c:if>タグを使用していません。

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

私は何が起こっているのか分かりません。 では動作しませんが、ハイパーリンクは表示されません。しかし、として変更すると、真の条件行のEditハイパーリンクが表示されます。しかし、2番目の条件1は私が望むものではありません。 – kitokid

+0

実際の内容を確認するために、それらの値を印刷してみてください。デバッグを設定するか、jspのオブジェクトを出力するために単に ''または '<%out.println();%>'を使います。 – tusar

関連する問題