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

Spring启动/胸腺叶-循环中的循环

云承弼
2023-03-14

我有一个具有两个实体的应用程序,它们具有双向一对多关系。车主和自行车。

因此,通过curl获得所有者将

[
    {"id":1,
    "userName":"user1",
    "bicycles":
        [
            {
                "id":1,
                "make":"dawes",
                "model":"civic",
                "owner":1
            }
        ]
    },
    {"id":2,
    "userName":"user2",
    "bicycles":
        [
            {
                "id":2,
                "make":"whyte",
                "model":"montpellier",
                "owner":2
            }
            ,{
                "id":4,
                "make":"dahon",
                "model":"tern A7",
                "owner":2
            }
        ]
    } ]

这很好。

如果我创建一个在表中循环的模板,

<table>
    <tr th:each="owner : ${owners}">
      <td th:text="${owner.userName}"></td>
      <td th:text="${owner.bicycles[0].make}"
          th:if="${#lists.size(owner.bicycles)} > 0">"</td>
      <td th:text="${owner.bicycles[0].model}"
          th:if="${#lists.size(owner.bicycles)} > 0"></td> 
    </tr>
  </table>

然后我在浏览器中得到了预期的结果。我意识到上面的代码很糟糕,但我现在只对让thymeleaf工作感兴趣。

但是如果我执行以下代码

<table>
    <tr th:each="owner : ${owners}">
      <td th:text="${owner.userName}"></td>
      <tr th:each="bike : ${owner.bicycles}">
          <td th:text="${bike.make}"></td>
          <td th:text="${bike.model}"></td>  
      </tr>  
    </tr>
  </table>

然后我得到以下控制台错误

嵌套的异常是org。百里香。例外情况。TemplateProcessingException:异常评估SpringEL表达式:“owner.bicycles”(模板:“nutsthymeleaf”-第23行,第15列)]和根本原因

org.springframework.expression.spel.SpelEvalue ation异常: EL1007E:属性或字段自行车不能在null上找到

我感到困惑的是那个主人。自行车[索引]工作。它显示了品牌和型号。然而,它的主人。根据错误,bicycles似乎为空字段。

所以很明显我做错了什么…。

共有2个答案

戚云
2023-03-14

所以我找到了这个

Thymeleaf:获取属性或字段不能在null上找到。列表内列表的迭代

这就停止了SpelException。

玩过之后,它不需要三个关卡,只需要两个关卡。如果th:each嵌套在th:each中,则会出现问题。第二个th:each必须位于th:block(或者可能是div)中。

翟泰
2023-03-14

如果检查自行车是否为空,请尝试

<table>
    <tr th:each="owner : ${owners}">
      <td th:text="${owner.userName}"></td>
      <tr th:if={owner.bicycles != null} th:each="bike : ${owner.bicycles}">
          <td th:text="${bike.make}"></td>
          <td th:text="${bike.model}"></td>  
      </tr>  
    </tr>
</table>

 类似资料:
  • 我想做一些像 在百里香叶中。我知道有一个价值观,我要做的就是 如何在Thyemleaf的select选项中传递两个值。

  • 我无法用IntelliJ中的ThymileAF启动基于Spring Boot的应用程序。我的项目在maven中,当我从命令行启动它时: java-jarmyproject.war 一切正常。但在IDE中配置run应用程序时,出现以下错误: 这是我的pom.xml:

  • 我试图在thymleaf中迭代函数列表。这就是我所做的。 控制器: 并在html中: 我是新来的。我做错了什么?或者我应该使用?

  • 我想把JavaScript onClick属性使用Thym立叶。 我这样写代码 此代码正在运行。当productName包含这样的特殊字符时,我会遇到问题 然后JavaScript函数看起来像这样 我需要从产品名称中转义双引号和单引号字符。我该怎么做?

  • 我的PDF包含一个文本形式的带有连字符符号的URL。当我通过标记直接从PDF复制URL时,当连字符位于行的末尾时,符号在粘贴后消失。 我有以下html: 但复制粘贴后,我得到的url没有连字符:https://sec2mms.hansatonich.at/test.t.ozkq/ 我错过了什么?

  • 当图像存在时,我想在thymleaf中显示背景图像,但如果不存在,我想在那里显示默认图像。我试过的如下 在最后一个空引用中,我想放一个这样的默认图像 但它显示出错误。正确的语法是什么?