迭代的百万美元迭代

时间:2018-06-18 10:05:32

标签: java spring foreach thymeleaf

在我的域中,我的Commessa包含programmazioneTransient列表,其中包含varieTransient列表。

使用thymeleaf我创建一个视图,显示第二个列表的每个元素,并运行完美。现在我添加了循环以显示varieTransient列表,但是我有这个错误:

  

引起:org.attoparser.ParseException:异常评估   SpringEL表达式:   “programmazioneTransient + $ {prgStat.index} .varieTransient”(模板:   “views / programmazione / show” - 第92行,第19行)at   org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)   〜[attoparser-2.0.4.RELEASE.jar:2.0.4.RELEASE] at   org.attoparser.MarkupParser.parse(MarkupParser.java:257)   〜[attoparser-2.0.4.RELEASE.jar:2.0.4.RELEASE] at   org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)   〜[thymeleaf-3.0.8.RELEASE.jar:3.0.8.RELEASE] ... 102个常见帧   省略引起:   org.thymeleaf.exceptions.TemplateProcessingException:异常   评估SpringEL表达式:   “programmazioneTransient + $ {prgStat.index} .varieTransient”(模板:   “views / programmazione / show” - 第92行,第19行)at   org.thymeleaf.spring4.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:290)   〜[thymeleaf-spring4-3.0.8.RELEASE.jar:3.0.8.RELEASE]

我的 html 页面如下:

<th:block th:each="prg, prgStat : *{programmazioneTransient}">
        <tr th:id="riga+${prgStat.index}">
            <td scope="col" style="width: 15%!important;">
                <input type="text" th:id="sperimentatore+${prgStat.index}" th:name="programmazioneTransient[+${prgStat.index}+].sperimentatore" class="text-center form-control-plaintext" readonly="readonly" th:value="${#strings.capitalizeWords(prg.sperimentatoreTransient)}"></input>
            </td>
            <td scope="col" style="width: 15%!important;">
                <input type="text" th:id="aiutoSperimentatore+${prgStat.index}" th:name="programmazioneTransient[+${prgStat.index}+].aiutoSperimentatore" class="text-center form-control-plaintext" readonly="readonly" th:value="${#strings.capitalizeWords(prg.aiutoSperimentatoreTransient)}"></input>
            </td>
                            ...
            <th:block th:each="v, vInd : *{programmazioneTransient+${prgStat.index}.varieTransient}" > 
                <td scope="col" >
                    <input type="number" th:id="v.quantita+*{#lists.size(programmazioneTransient)}" th:name="varieTransient[+${vInd.index}+].numeroProgrammate" class="text-center form-control-plaintext" readonly="readonly" th:value="varieTransient[+${vInd.index}+].numeroProgrammate"></input>
                </td>
            </th:block> 
        </tr> 
</th:block>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

为什么不使用局部变量?

而不是尝试索引
<th:block th:each="prg, prgStat : *{programmazioneTransient}">
    .
    .
    .
    <th:block th:each="v, vInd : ${prg.varieTransient}">
        .
        .
        .
    </th:block>
</th:block>

如果你想使用索引,你应该记住,一般情况下,你不应该嵌套${...}表达式 - 除非在特殊情况下。那个表达式看起来像这样:

<th:block th:each="v, vInd : *{programmazioneTransient[prgStat.index].varieTransient}">
    .
    .
    .
</th:block>