(五)Thymeleaf标准表达式之——[7->8]条件表达式& 默认表达式
2.7 条件表达式
模板名称:condition-express.html
<1>a ? b:c (if then:else)
<2>a?c (if else)
条件表达式(
condition
,then
和else
)的所有三个部分都是表达式,这意味着它们可以是变量(${...}
,*{...}
),消息(#{...}
),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>