用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。
使用格式:
(条件表达式)?表达式1:表达式2;
运算规则:条件表达式 值为一个布尔值,当值为true的时候 执行表达式1 否则的话执行表达式2
这种写法可以代替我们一般的if-else-if语句
常见的可以用于下面的几种情况中:
<c:forEach items="${page.list}" var="order"> <tr> <td>${order.orderId}</td> <td>${order.goodId}</td> <td>${order.shopperName}</td> <td>${order.goodNumber}</td> <td>${order.goodPrice}</td> <td>${order.sumPrice}</td> <td>${order.saleTime}</td> <td>${order.orderStatus=="1"?"待审核":(order.orderStatus=="0"?"未通过":"已通过")}</td> <!-- 1 代表待审核 0代表未通过 2 代表已通过 --> <shiro:hasAnyPermissions name="sys:order:edit"> <td> <a href="${ctx}/sys/order/form?orderId=${order.orderId}">修改</a> <a href="${ctx}/sys/order/delete?orderId=${order.orderId}">删除</a> </td> </shiro:hasAnyPermissions> </tr> </c:forEach>
var state = null; var display_state = (state == null ? "未用" : (state == true ? "在用" : "停用")) //display_state //"未用"
一般的三元运算符就够用了,
但是此时有个需求:比如state有3个状态,{null,true,false}
代表的意思如下:
null→未用
true→在用
false→停用
其实只有三元运算符,但这种嵌套的可以理解为"四元运算符"
String str = (status = = CurStatus1 ? A :(status == CurStatus2 ?B : C))
大多数情况中这种的使用是非常的方便的。
三元运算符的嵌套详解:分别在JSTL、JavaScript和Java中
原文:https://www.cnblogs.com/isme-zjh/p/12658746.html