FreeMarker 处理不存在的值技术
FreeMarker 是 Java 的模板引擎,相比起比较偏执的 Thymeleaf 更加人性化一些,本文讲解使用 FreeMarker 处理不存在的值的一些事项。
默认值操作符
使用形式:unsafe_expr!default_expr 或 unsafe_expr! 或 (unsafe_expr)!default_expr 或 (unsafe_expr)!。如果默认值被省略了,那么结果将会是空串,空序列或空哈希表。 (这是 FreeMarker 允许多类型值的体现)请注意,如果想让默认值为 0 或 false,则不能省略它。
不存在值检测操作符
使用形式: unsafe_expr?? 或 (unsafe_expr)??。这个操作符告诉我们一个值是否存在。基于这种情况, 结果是 true 或 false。示例如下,假设并没有名为 mouse 的变量:
<#if mouse??> Mouse found <#else> No mouse found </#if> Creating mouse... <#assign mouse = "Jerry"> <#if mouse??> Mouse found <#else> No mouse found </#if>
将会输出:
No mouse found Creating mouse... Mouse found
访问非顶层变量的使用规则和默认值操作符也是一样的, 也就是说,可以写 product.color?? 和 (product.color)??。
转义 HTML
如下示例:
<input type="text" value="${remark?html}" name="remark" placeholder="">
暂无