java - thymealf 一次迭代
问题描述
在我的域中,我有一个Commessa
包含一个列表的列表,programmazioneTransient
其中包含一个列表varieTransient
。
使用 thymeleaf,我创建了一个视图,显示第二个列表的每个元素,并完美运行。现在我添加了显示varieTransient列表的循环,但我有这个错误:
引起:org.attoparser.ParseException:评估 SpringEL 表达式的异常:“programmazioneTransient+${prgStat.index}.varieTransient”(模板:“views/programmazione/show” - 第 92 行,第 19 列)在 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”(模板:“视图/programmazione/show” - 第 92 行,第 19 列)在 org.thymeleaf.spring4.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:290) ~[thymeleaf-spring4-3.0.8.RELEASE.jar:3.0.8。发布]
我的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>
有什么建议吗?
解决方案
与其尝试索引,不如只使用局部变量?
<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>
推荐阅读
- python - 如何使我的搜索递归 MIT 6001x 课程
- mysql - SQL查找另一列具有最大值但可重复值的列的最大值
- python - 如何在 Python 中解析函数的参数?
- html - 如何更改 HTML 表格中特定元素的位置
- r - 错误数据必须是向量类型为空 R
- django - 我将如何对这个以请求为参数的函数进行单元测试?
- xml - XML 文件的 XML 架构定义 (XSD)
- azure - Azure CLI 中的 azure-webapp-maven-plugin 配置不执行
- colors - 如何正确混合两个三角形的颜色并去除对角线拖影
- python - 单击图像以使用 selenium python 访问网站上的另一个页面