2009-05-30 8 views
0

私はhttp://jsbin.com/awocoのようなHTMLページを取得しようとしています。一部のHTML/CSSはStruts2の欠点を回避するため

これはJSPページなので、スクリプトレットが含まれます。最終的なHTML出力は一種の、このようになります(スペースを節約するために閉じられていないタグ):あなたが見ることができるように

<% 
Iterator it = MyList.iterator() 
     While (it.hasNext()) 
     SomeClass all = it.next(); 
     SomeClass a = it.next(); 
     SomeClass b = it.next(); 
%> 
     <tr> 
     <td rowspan=3 valign=top>Red<td><%=all.Name()%><td><%=all.price()%><td><%=all.originalPrice()%> 
     </tr> 
     <tr> 
     <td><%=a.Name()%><td><%=a.price()%><td><%=a.originalPrice()%> 
     </tr> 
     <tr > 
     <td><%=b.Name()%><td><%=b.price()%><td><%=b.originalPrice()%> 
     </tr>  

、私は、whileループ内next() 3回を呼び出す必要があります。これは、データのソースがそのような方法で作成されたリストであり、上記のリンクとまったく同じ方法でデータを表示する必要があるためです。

何とかHTML出力を変更して、next()を複数回呼び出す必要はありませんが、同じテーブル構造を取得できますか?

+0

私はあなたの問題に関する有用なアドバイスを提供できないのですが、問題はhtmlやcssとは関係ないとアドバイスします。質問は効率的に作成する方法であるようですそれをどのように提示するのではなく、ソースからの出力。 –

答えて

0

データ構造を変更してください。 MyListは、タイプがSomeClass(all、a、b)の3つのメンバーを含むAgregateClassのリストでなければなりません。次に単純にMyListを繰り返します。

ちょっとしたヒント: Struts2を使用している場合は、<s:iterator>タグを使用してコレクションを反復することができます。 JSP 2.0以降documentation

またはあなたはそれが、HTMLやCSSとは何の関係もないようあなたは、あなたの質問に追加したタグを変更する必要があります代わりに<%=b.price()%>

${b.price}を書くことができます。

関連する問題