(五)Thymeleaf标准表达式之——[7->8]条件表达式& 默认表达式

2.7 条件表达式

模板名称:condition-express.html
<1>a ? b:c  (if then:else)
<2>a?c (if else)
条件表达式(conditionthenelse)的所有三个部分都是表达式,这意味着它们可以是变量(${...}*{...}),消息(#{...}),URL(@{...})或文字('...'))。
e.g.
<li>? 'xx' :'xx'(if ? then:else)<span th:class="${title} ? 'green' :' red'">样例一</span></li>
<li>?'xx'(if ? then)<span th:class="${title1} ? 'green'">样例二</span></li>
<!--   嵌套   -->
<tr th:class="${row.even}? (${row.first}? 'first' : 'even') : 'odd'">
  ...
</tr>
<!--  Else表达式也可以省略,在这种情况下,如果条件为false,则返回null值 -->
<tr th:class="${row.even}? 'alt'">
  ...
</tr>

2.8 默认表达式(Elvis operator )

模板名称:condition-express.html
语法: ?: (if:defaultValue)
 the first one is used if it doesn’t evaluate to null, but if it does then the second one is used.(值不为null使用第一个,否则第二个)
e.g.
<div th:object="${session.user}">
  ...
  <p>Age: <span th:text="*{age}?: '(no age specified)'">27</span>.</p>
</div>
equals:
<p>Age: <span th:text="*{age != null}? *{age} : '(no age specified)'">27</span>.</p>
 
原文地址:https://www.cnblogs.com/zjfjava/p/6893153.html