当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf:如果属性和属性存在,则显示文本

刘选
2023-03-14

如果属性和属性存在,thymeleaf中是否有一种简单的方法来显示属性属性的内容?如果我的html页面中有属性“error”和属性“summary”,我想显示它:

<span th:text="${error.summary}">error summary</span>

如果没有属性“error”,将引发以下错误:

org.springframework.expression.spel.SpelEvaluationException:EL1007E:(pos 0):在null上找不到字段或属性“摘要”

目前,我正在使用以下方法,这似乎太复杂了。

<span th:if="${error != null and error.summary != null}"><span th:text="${error.summary}">error summary</span></span>

有没有更简单的方法来实现这一点?

共有1个答案

申屠亦
2023-03-14

当然由于与th:如果属性关联的处理器的优先级高于与 th:textattribute关联的处理器,因此将首先对其求值。因此,您可以写:

<span th:if="${error != null && error.summary != null}" th:text="${error.summary}">Static summary</span>

你甚至可以缩短它使用:

<span th:text="${error?.summary}">Static summary</span>

但我认为在这种情况下,无论摘要是否存在,都会创建span标记,这有点难看。

在此处查看有关条件表达式的详细信息。

 类似资料:
  • 我想创建一个隐藏的输入字段:

  • 获取以下异常: 原因:org.hibernate.queryException:无法解析属性:primaryAddress:com.hcentive.user.ContactInfo在org.hibernate.persister.entity.abstractPropertyMapping.PropertyException(abstractPropertyMapping.java:62)~[h

  • 我是网络开发新手,所以这可能是非常基本的。如果datainfo prop变量不是空的,我想向div标记添加一个数据属性 但是现在,如果datavalue是空的,则data属性会添加一个空值。相反,我希望它根本不会出现在div标签中。 我可以在JSX子句中添加整个内容吗?

  • 本文重要内容 CSS的单位 字体属性 文本属性 定位属性:position、float、overflow等 CSS的单位 html中的单位只有一种,那就是像素px,所以单位是可以省略的,但是在CSS中不一样。CSS中的单位是必须要写的,因为它没有默认单位。 绝对单位: 1 in=2.54cm=25.4mm=72pt=6pc。 各种单位的含义: in:英寸Inches (1 英寸 = 2.54 厘米

  • 我正在用Spring MVC和Thymeleaf在视图层开发一个完整的Spring应用程序。过去,我在视图层中使用过JSP和Spring MVC,但我想它们现在是恐龙了 所以我的问题是,使用JSP,通过在模型中添加值,我可以很容易地在视图中显示模型属性。在控制器中添加属性,并在JSP anywhere中显示相同的属性,占位符求值为springex${value}。所以,如果我想在页面中放置标题,我

  • 我用两个jsp文件和一个控制器构建了一个小servlet。 这是: 这是控制器: 当我在登录jsp页面上输入用户名和密码并点击提交时,这两个属性都显示在URL行中。 这就是我得到的: 我该怎么解决?