Spring JSTL:如何访问对象迭代内的任意字段
我正在编写一个 .tagx 文件,希望在表格中显示对象列表,其中包含用户选择的列。
当我到达这里时,我已经有了包含数据库对象列表的 ${items}
和包含与字段匹配的字段名称列表的 ${columns}
${items}
内容的名称。
我正在尝试执行以下操作:
<table>
<c:forEach var="item" items="${items}" >
<tr>
<c:forEach var="column" items="${columns}">
<td><!-- What should go here? --></td>
</c:forEach>
</tr>
</c:forEach>
</table>
${item.column}
向我投诉 item 没有名为 column
的字段。这是真的。
输入 ${item.${column}}
会出现语法错误(无效字符“{”)。
正确放置“ASDF”表明列的布局良好,并且虚拟数据已放入其中。因此,除了访问我们正在迭代的项目的任意字段之外,它实际上是一切。
I'm writing a .tagx file, looking to display a listing of objects, in a table, with columns that the user selected.
By the time I get here, I have ${items}
that contains my list of database objects, and ${columns}
that contains the list of field names that match field names of the ${items}
contents.
I'm trying to do:
<table>
<c:forEach var="item" items="${items}" >
<tr>
<c:forEach var="column" items="${columns}">
<td><!-- What should go here? --></td>
</c:forEach>
</tr>
</c:forEach>
</table>
${item.column}
gets me a complaint that item has no field named column
. Which is true.
Putting ${item.${column}}
gives a syntax error (invalid character '{').
Putting "ASDF" properly shows that the columns are getting laid out good and dummy data gets put in them. So it's literally everything except accessing an arbitrary field of an item we're iterating.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
${item[column]}
。并且不要忘记使用
正确进行 HTML 转义。Use
${item[column]}
. And don't forget to properly HTML escape using<c:out>
.