私はこのようなプロファイルを持つ特性を有する:OGNL/Struts2でリストのリストを反復してインデックスを作成するにはどうすればよいですか?
public List<List<String>> getAvailablePassengersJS()
Iは、内側リスト内の最初の5つの位置の各々のための1つの外側のリストの各要素の行と列を持つテーブルを作成したいです。 私はこれを使用してみました:
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
私は、データが正しく読み込まれている知っている:
<s:iterator value="ssn.docked.AvailablePassengersJS" var="line">
<tr>
<td><s:property value="line[0]"/></td>
<td><s:property value="line[1]"/></td>
<td><s:property value="line[2]"/></td>
<td><s:property value="line[3]"/></td>
<td><s:property value="line[4]"/></td>
</tr>
</s:iterator>
しかし、出力が完全に空欄の100+行です。私はこれを行うとき:
<tr>
<td>[2236, Middle, Onbenbosin Bawed, true, You can book Tritho Fonand]</td>
</tr>
そして、私がこれを行うとき:
java.lang.ClassCastException: java.util.ArrayList incompatible with java.lang.String
:
<s:iterator value="ssn.docked.AvailablePassengersJS" var="line">
<tr>
<td><s:property value="line"/></td>
</tr>
</s:iterator>
を、私は例外を取得
<s:iterator value="ssn.docked.AvailablePassengersJS" var="line">
<tr>
<td><s:property/></td>
</tr>
</s:iterator>
を私はこのような100+行を取得します
私は "行"がArrayListを解決することを知っています。 Everything I've read about OGNLは、[]表記で配列をインデックスできなければならないことを暗示しているようです。私は{}、#などの組み合わせをもっと試してきましたが、あなたに負担をかけないようにしています。 これはなぜ機能しないのか、私はそれを動作させるために何をする必要があるのか誰にも説明できますか?それは主に作品を
<s:iterator value="ssn.docked.AvailablePassengersJS" var="line">
<tr id="availPass<s:property value="#line[0]"/>">
<td><s:property value="#line[1]"/></td>
<td><s:property value="#line[2]"/></td>
<td><s:checkbox key="#line[3]" value="false" theme="simple"/> Book</td>
</tr>
</s:iterator>
:私はこのコードを使用下回っクォータニオンの提案をしようと
UPDATE
。残念ながら、チェックボックスでは失敗します:
<tr id="availPass151570">
<td>Low</td>
<td>Andadicko Ostan</td>
<td><input type="checkbox" name="#line[3]" value="true" id="#line_3_"/><input type="hidden" id="__checkbox_#line_3_" name="__checkbox_#line[3]" value="true" /> Book</td>
</tr>
私がキーを使用しない場合、idまたはvalueの組み合わせはどちらも動作しません。 Iちょうど名前とIDの両方がいる場合:
<td><s:checkbox name="#line[3]" id="#line[3]" value="false" theme="simple"/> Book</td>
それを解決しない場合:私は名前だけを使用している場合は
<td><input type="checkbox" name="Book" value="true" id="#line3"/><input type="hidden" id="__checkbox_#line3" name="__checkbox_Book" value="true" /></td>
:
<td><s:checkbox name="#line[3]" value="false" theme="simple"/> Book</td>
それはどちらか動作しません。
<td><input type="checkbox" name="#line[3]" value="true" id="#line_3_"/><input type="hidden" id="__checkbox_#line_3_" name="__checkbox_#line[3]" value="true" /> Book</td>
idを使用すると、
<td><s:checkbox id="#line[3]" value="false" theme="simple"/> Book</td>
<td><input type="checkbox" name="<!-- FREEMARKER ERROR MESSAGE STARTS HERE -->...
Expression parameters.name is undefined on line 23, column 32 in template/simple/checkbox.ftl.
The problematic instruction:
----------
==> ${parameters.name?html} [on line 23, column 30 in template/simple/checkbox.ftl]
なぜチェックボックスのパラメータには、プロパティとは異なる構文が必要なのですか?
私は何が尋ねられているのか分からず、(試した) - (生産した) - (しかし必要です)と質問が明確になったら投票を逆にします。必要なのは、大きなタグスープだけがないことです。 – Quaternion
Quaternionは、彼が削除した情報を尋ねる長い往復のスレッドに言及していませんが、上記の状態で質問を残しました...私の結論は、評判が上位4%にある人は、 25年の間フィールドにいた誰かに簡単な質問があり、その技術はプライムタイムの準備ができていません。私はStruts-2が私のニーズに適合するまでStruts-1に固執します(Struts-2に自分のニーズを適応させる必要はありません)。 –
質問を改善するために何かしましたか?あなたは何も複雑ではありません、私はあなたが欲しいものは簡単に答える/やることができると確信しています。私はすでに説明しました:どのようにstruts2チェックボックスが動作するかは反復処理の仕方から独立しています。私は時間をかけて元の質問に答え、その後質問が変わった。 Javaのfor-eachループがどのように機能するのかを尋ねるのは私のようなものです。他のストラット2の答えはこれを読んで考えて、これは意味をなさない。あなたが間違った質問をするだけで、別の人にも質問しても、質問は無料です。 – Quaternion