![](/img/trans.png)
[英]JSP: How can I use expression tag in println in scriptlet tag
[英]How can I convert a velocity expression to JSP?
我有一个页面要从Velocity转换为JSP。 我有一些复杂的表达式,无法弄清楚如何转换为JSTL el语言。
#set ($col = 0)
#foreach ($hour in $form.bean.grid.hours)
$hour.cells.get($col).hourOfDay
#set ($col = $col + 1)
#end
Hour是一个对象,其中包含一个包含列表的单元格。 我需要通过数字索引获取每个元素。
有任何想法吗?
基本上,您显示的是一天中的小时数。 使用JSTL,
<c:forEach items="${form.bean.grid.hours}" var="hour" varStatus="index">
${hour.cells[index.count - 1].hourOfDay}
</c:forEach>
的count
在index.count开始从1至N(所以由1否定它)计数。
就像是:
<c:set var="col" value="0"/>
<c:forEach items="${form.bean.grid.hours}" var="hour">
${hour.cells[col].hourOfDay}
<c:set var="col" value="${col + 1}"/>
</c:forEach>
仅在hour.cells
是一个Map
, hour.cells
,因此cells.get($col)
中的cells.get($col)
表达式正在该Map
上调用get()
。 如果这是一个任意方法调用,那么它将不起作用,因为JSP EL仅能处理bean属性或集合。
正如@EliteGentleman指出的那样,您可以在forEach
循环上使用varStatus
来消除对单独的循环计数器的需要,您应该这样做。 我的片段是更直译的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.