【问题标题】:Thymeleaf SpringEL expressionThymeleaf SpringEL 表达式
【发布时间】:2019-04-19 12:45:36
【问题描述】:

百里香模板有这样的问题。我得到:

Exception evaluating SpringEL expression: "prod.itemName" (main:18)

从这个表达式:

<tr th:each="prod: ${product}">
    <td th:text="${prod.itemName}">sdfsdf</td>
    <td th:text="${prod.price}">asdasd</td>
    <td>asddasdas</td>
</tr>

product 是作为模型属性传递给 thymeleaf 模板的列表。我想知道为什么它不能正常工作。

我使用了这个来源: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#iteration-basics

编辑:

package shopbasket;

public class Item {
    String itemName;
    double price;

    Item(String itemName, double price){
        this.itemName=itemName;
        this.price=price;
    }

    void setItemName(String itemName) {
        this.itemName=itemName;
    }

    String getItemName() {
        return itemName;
    }

    void setPrice(float price) {
        this.price=price;
    }

    double getPrice() {
        return price;
    }
}

【问题讨论】:

  • prod.itemName 是否可能为空?
  • 我认为不能为空
  • 你确定你拥有类的所有getter和setter吗?我在这里查看完全相同的代码及其工作:/
  • 只是一个猜测...prod: ${product} - 假设其他一切都正常,您是否需要冒号前的空格,例如prod : ${product}?几乎每个在线 sn-p 都有那个空格,即使你链接的教程也有。也许这就是这里的问题
  • prod 的类型可能不是你想象的那样。在循环中只输出${prod},看看ThymeLeaf 告诉你它是什么类,然后从那里继续。

标签: java spring loops thymeleaf


【解决方案1】:

这个:

<tr th:each="prod : ${prods}">
    <td th:text="${prod}">sdfsdf</td>
    <td th:text="${prod}">asdasd</td>
    <td>asddasdas</td>
</tr>

给出输出:

shopbasket.Item@10d9f966    shopbasket.Item@10d9f966    asddasdas
shopbasket.Item@1346081f    shopbasket.Item@1346081f    asddasdas
shopbasket.Item@4c8bc1d8    shopbasket.Item@4c8bc1d8    asddasdas
shopbasket.Item@7b0d2332    shopbasket.Item@7b0d2332    asddasdas
shopbasket.Item@6e38515f    shopbasket.Item@6e38515f    asddasdas
shopbasket.Item@4d9daa77    shopbasket.Item@4d9daa77    asddasdas
shopbasket.Item@5f0a371d    shopbasket.Item@5f0a371d    asddasdas
shopbasket.Item@4d0c8b7d    shopbasket.Item@4d0c8b7d    asddasdas
shopbasket.Item@6112892a    shopbasket.Item@6112892a    asddasdas
shopbasket.Item@41fc596d    shopbasket.Item@41fc596d    asddasdas
shopbasket.Item@4fc03c90    shopbasket.Item@4fc03c90    asddasdas
shopbasket.Item@663e1176    shopbasket.Item@663e1176    asddasdas
shopbasket.Item@13909f42    shopbasket.Item@13909f42    asddasdas

【讨论】:

    【解决方案2】:

    试试这个表格:&lt;td th:inline="text"&gt;[[${prod.price}]]&lt;/td&gt;

    【讨论】:

    • 在阅读了其他 cmets 之后,我发现代码在另一个环境中工作,但你仍然无法让它在你的环境中工作......我遇到了同样的问题,我通过匹配我的 JDK 和我的 JRE 因为我的 java 自己进行了升级..所以请先尝试设置 :) 断腿! @graluc
    猜你喜欢
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多