我的数据库中有一些值,如果尚未输入,则可以为null。
但是当我在我的html中使用Thymeleaf时,它在解析空值时会出错。
有没有办法解决这个问题?
答案 0 :(得分:89)
最短的方法是使用'?'运营商。如果您有具有嵌入式地址实体的用户实体,以便访问地址实体的字段,并在地址不为空时打印它们,否则这里将是一个空列:
<td th:text="${user?.address?.city}"></td>
答案 1 :(得分:50)
当然有。例如,您可以使用conditional expressions。例如:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span>
您甚至可以省略“else”表达式:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span>
您还可以查看Elvis operator以显示默认值。
答案 2 :(得分:10)
您可以将'th:if'与'th:text'一起使用
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
答案 3 :(得分:7)
这也可以使用elvis operator ?:
处理,当字段为空时,它将添加默认值:
<span th:text="${object.property} ?: 'default value'"></span>
答案 4 :(得分:5)
您在创建
时已完成两次检查${someObject.someProperty != null} ? ${someObject.someProperty}
你应该干净简单,如下所示。
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
答案 5 :(得分:5)
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
答案 6 :(得分:2)
还值得参考#objects内置帮助程序的文档: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects
有用:${#objects.nullSafe(obj, default)}
答案 7 :(得分:1)
我使用
<div th:text ="${variable != null} ? (${variable != ''} ? ${variable} : 'empty string message') : 'null message' "></div>
答案 8 :(得分:1)
您可以使用对我有用的此解决方案
<span th:text="${#objects.nullSafe(doctor?.cabinet?.name,'')}"></span>
答案 9 :(得分:0)
最短的方法!它对我有用 其中NA是我的默认值。
<td th:text="${ins.eValue!=null}? ${ins.eValue}:'NA'" />