2010-12-14 19 views
0

可変長のArrayListsをいくつか持ち、nullの場合があります。このArrayListには多数のオブジェクトが含まれています。 テーブルには、オブジェクトの(いくつかの)属性に基づいた列が必要です。テーブルはJSPで表示されるはずです。ArrayList をHTMLテーブルに変換する

2つのアイデアがあります.1つはJSTLタグを使用し、もう1つはJavaScriptを使用することです。そして図書館の提案は大歓迎です。

<table> 
<tr><td>Foo header</td><td>Bar header</td></tr> 
<c:forEach items="${yourRequestScopedArrayList}" var="obj"> 
    <tr> 
     <td>${obj.foo}</td> 
     <td>${obj.bar}</td> 
    </tr> 
</c:forEach> 
</table> 
+0

ようなものになるだろう。 – BalusC

+0

実際にJavaScriptを参照していたわけではありませんが、Stephen P(下記)はJavaScriptがJavaオブジェクトにアクセスできないことを既に明確にしています。 –

答えて

0

JSTLが優れている(あなたがたとえば、AJAXを経由して、それをロードする必要がある場合を除き)

+0

できるだけJSを避ける​​のはなぜですか? JSに依存している場合、JSはjstl(htmlだけ)よりも多くの機能を備えたデータグリッドを提供します。リストをJSONとして渡すだけです。 Sortable、Filterable、Reordable Hideable ColumnのためにExt-JSグリッドのようなものを使うことができます... http://dev.sencha.com/deploy/dev/examples/grid/grid-plugins.html –

+0

@Juan Mendes可能ならばJSTLとの関係はJSTを避けます.JavaScriptもブラウザを読み込むので信頼性が高くありません。ケースOPが話題になっているのは、JSTL –

+0

life.javaを使用して最適です。あなたの議論は私にはあまり意味がありません。あなたのサイトがJSを無効にしなければならない場合は、そうかもしれません。それ以外の場合、あなたのコメントはJSをあまり知らない人のように聞こえるでしょう。たとえば、すべてのインタラクションがAJAXベースであるため、JSが必要です。たとえJSが必要ではないとしても、私が提案したグリッドはプログレッシブ・エンハンスをサポートしています。 jstlを使用してテーブルを出力し、クライアントがJSをサポートしている場合は、ソート可能、フィルタ可能にすることができます。 –

1

JSTLは、あなたが可能な限り避けるべきである

Javascriptを、標準、好適な方法であります

私はあなたがどのようにJavaスクリプトやコレクション

を使用してDataTableをレンダリングしようとしているかわかりませんBozhoによって同じスレッドで実証されたコレクションでjstlを使用してください。

+0

私はそれがsの項目であるべきだと思います。 – Enrique

+0

はい、タイプミス。ありがとう。 – Bozho

+0

コード​​$ {obj.getItemID()}を実行すると、「デフォルトの名前空間が指定されていない場合は、関数getItemIDを接頭辞とともに使用する必要があります」というメッセージが表示されます。何ができますか?\ –

0

Javascriptは、サーバー上に存在するJavaオブジェクトにアクセスできません。サーバーコードは、JSPでArrayListsを使用できるようにすることができ、JSTL forEachタグを使用してそれらをループすることができます。

ArrayListsを「利用可能」にする方法は、使用しているフレームワークによって異なりますが、単純なサーブレットのやり方ではdoPostメソッドから属性を設定するだけです。

request.setAttribute("list1", arrayList1); 

ループは、あなたがJSPのスクリプトレットではJavaScriptを混乱している

<table> 
<tr><th>Column 1</th> <th>Column 2</th> <th>Column 3</th></tr> 
<c:forEach var="row" items="${list1}"> 
    <tr><td>${row.col1data}</td> <td>${row.col2data}</td> <td>${row.col3data}</td></tr> 
</c:forEach> 
</table> 
関連する問題