th:if
条件判断 {#heading-1}
很多时候只有在满⾜某个条件时,才将⼀个模板⽚段显示在结果中,否则不进行显示。比如只有当用户有订单时,才为它显示订单链接,否则不显示。th:if
属性用于满足这个需求
<body>
<!--if属性结果为 true,模板会进行显示-->
<p th:if="true">th:if="true"</p>
<!--if属性结果为 false,模板不会进行显示-->
<p th:if="false">th:if="false"</p>
<!--后台控制器传出数据:model.addAttribute("isMarry", true);-->
<p th:if="${isMarry}">已婚</p>
</body>
th:if 属性不仅只以布尔值作为判断条件,它将按照如下规则判定指定的表达式结果为 true:
如果表达式结果为布尔值,则为 true 或 false
如果表达式的值为 null,th:if 将判定此表达式为 false
如果值是数字,为 0 时,判断为 false;不为零时,判定为 true
如果值是是 String,值为 "false"、"off"、"no" 时,判定为 false,否则判断为 true,字符串为空时,也判断为 true
如果值不是布尔值,数字,字符或字符串的其它对象,只要不为 null,则判断为 true
<body>
<!--表达式的结果为布尔类型时,if 直接以它为结果-->
<p th:if="true">th:if="true"</p>
&lt;!--当表达式结果为null时,则if判定为false--&gt;
&lt;p th:if="null"&gt;th:if="null"&lt;/p&gt;
&lt;!--表达式为数字时,不为0,if判定为true,为0,时,if判定为false--&gt;
&lt;p th:if="11"&gt;th:if="11"&lt;/p&gt;
&lt;p th:if="0"&gt;th:if="0"&lt;/p&gt;
&lt;!--表达式结果为字符串时,如果为 true,则if判定为true;值为 false,则if判定为false--&gt;
&lt;!--结果为 off、no 等特殊字符串时,if 判定为false--&gt;
&lt;p th:if="'true'"&gt;th:if="'true'"&lt;/p&gt;
&lt;p th:if="'false'"&gt;th:if="'false'"&lt;/p&gt;
&lt;p th:if="'off'"&gt;th:if="'off'"&lt;/p&gt;
&lt;p th:if="'no'"&gt;th:if="'no'"&lt;/p&gt;
&lt;!--表达式结果字符串不为false,off,no时,if判定为true--&gt;
&lt;p th:if="'Love China'"&gt;th:if="'Love China'"&lt;/p&gt;
&lt;!--后台传输:model.addAttribute("userList", User.getUsers());--&gt;
&lt;!--只要 userList 不等于null,则if判定为true,否则为false--&gt;
&lt;p th:if="${userList}"&gt;th:if="${userList}"&lt;/p&gt;
&lt;!--后台传输:model.addAttribute("name", "");--&gt;
&lt;!--字符串为空时,if判定为 true--&gt;
&lt;p th:if="${name}eq''"&gt;name 等于空&lt;/p&gt;
&lt;p th:if="${name}"&gt;th:if="${name}"&lt;/p&gt;
</body>
th:if
判断表达式 {#heading-2}
gt:(大于)>
ge:(大于等于)>=
eq:(等于)==
lt:(小于)<
le:(小于等于)<=
ne:(不等于)!=