2017-07-27 15 views
1

我想檢查<c:if>標記中的多個條件。 我做它像這樣如何測試<c:if>中的多個條件jstl

<c:if test="${role ne manager || role ne admin || role ne moderator}"> 
    System.out.println("this result will not display for manager, admin & mod"); 
</c:if> 

但儘管如此,我能看到結果的上述角色

+0

如果你有單一的聲明是否正常工作? '角色ne經理||角色ne admin ||角色ne主持人'是不是看起來像正確的聲明 – ByeBye

+0

@ByeBye是隻有第一個聲明在這裏工作 – Akash

+0

如果'ne'是'不''你必須使用'&&'而不是'||'。 – ByeBye

回答

-1

您可以使用<c:if><c:choose>標籤使用JSTL,使有條件的用JSP來渲染。

爲了模擬如果,你可以使用:

<c:if test="YourCondition"></c:if> 

爲了模擬如果...否則,你可以使用:

<c:choose> 
    <c:when test="${param.enter=='1'}"> 
     burger. 
     <br /> 
    </c:when>  
    <c:otherwise> 
     pizza. 
     <br /> 
    </c:otherwise> 
</c:choose> 

如果你只是想輸出不同的文本,更簡潔的例子是

${condition ? "some text when true" : "some text when false"} 

它比短得多c:選擇

+0

爲什麼倒票? –

1

問題是與布爾邏輯在這裏:

<c:if test=${role ne manager || role ne admin || role ne moderator}> 

如果用戶管理器,這將是: 0 OR 1 OR 1 = 1 同爲ADMIN和主持人

所以,你必須把它變成AND

<c:if test=${role ne manager && role ne admin && role ne moderator}> 

只有當用戶沒有任何指定角色時纔會顯示消息。

+0

這是一個好主意。 –