0

VelocityからJSPに変換しているページがあります。JSTLel言語に変換する方法がわからない複雑な式がいくつかあります。

#set ($col = 0)

#foreach ($hour in $form.bean.grid.hours)
  $hour.cells.get($col).hourOfDay
  #set ($col = $col + 1)
#end

Hourは、リストを含むセルを含むオブジェクトです。数値インデックスを介して各要素を取得する必要があります。

何か案は?

4

2 に答える 2

1

基本的に、1日の時間を表示しています。JSTLを使用して、

<c:forEach items="${form.bean.grid.hours}" var="hour" varStatus="index">
   ${hour.cells[index.count - 1].hourOfDay}
</c:forEach>

in index.countはcount、1からNまでカウントを開始します(したがって、1で否定します)。

于 2010-02-15T22:10:56.000 に答える
0

何かのようなもの:

<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ためcells.get($col)、元の式はそれを呼び出しget()ていMapます。それが任意のメソッド呼び出しである場合、JSP ELはBeanのプロパティまたはコレクションしか処理できないため、機能しません。

@EliteGentlemanが指摘しているように、varStatuson the forEachloopを使用して、個別のループカウンターの必要性をなくすことができます。私の断片はより直訳でした。

于 2010-02-15T22:06:17.403 に答える