如何在<c:if> jstl中测试多个条件

时间:2017-07-27 08:39:45

标签: java jsp jstl

我想检查<c:if>标记内的多个条件。 我这样做是

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

但是,我仍然可以看到上述角色的结果

2 个答案:

答案 0 :(得分:1)

问题在于bool逻辑:

var result = [];
    function getCat(id){
     for(let item in Foods) {
        var foodItem = Foods[item];
        for(let i=0; i<foodItem.length; i++){
           if(foodItem[i].id == id) {
              result.push("<div class='box'><h2>" + foodItem[i].Name + "<br></div>"));
           } 
        }

      }
    }

function display() {
  alert(result);
}

display();

如果用户是MANAGER,那将是: viewFlipper = (ViewFlipper) findViewById(R.id.switch_game); 与ADMIN和MODERATOR相同

所以你必须把它改成<c:if test=${role ne manager || role ne admin || role ne moderator}>

0 OR 1 OR 1 = 1

仅当用户没有任何指定的角色时,才会显示消息。

答案 1 :(得分:-1)

您可以使用<c:if><c:choose>标记在jsp中使用JSTL进行条件渲染。

要模拟 if ,您可以使用:

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

要模拟 if ... else ,您可以使用:

<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短:选择