2011-02-01 24 views
0

JSP/GSPページにResultSetの結果を表示する方法のドキュメントはどこにありますか?JSP/GSPにResultSetを表示

結果はGSPに返されるGroovyRowResultオブジェクトにあります。

ここで私はそれをどのように表示していますか?

<g:if test="${results.size() > 0}"> 
<table> 
    <g:each in="${results}" var="GroovyRowResult" status="index"> 
     <g:set var="result" value="${GroovyRowResult}" /> 
     <g:if test="${index == 0}"> 
      <tr> 
       <g:each in="${result.keySet()}" var="key" status="key_index"> 
        <g:if test="${key_index == 0}"> 
         <th id="t${key_index}" class="staticTHcol">${key.trim()}</th> 
        </g:if> 
        <g:else> 
         <th id="t${key_index}">${key.trim()}</th> 
        </g:else> 
       </g:each> 
      </tr> 
     </g:if> 
     <tr> 
     <g:each in="${result.values()}" var="value" status="index2"> 
      <g:if test="${index2 == 0}"> 
       <td headers="t${index2}" class="staticTDcol">${value}</td> 
       <g:set var="record_id" value="${value}" /> 
      </g:if> 
      <g:else> 
       <td headers="t${index2}" class="nonStaticTDcol"> 
        <g:textField name="${record_id}" value="${value}" onfocus="setDefaultValue('${value}');" onblur="updateValue(this,'${record_id}')" /> 
       </td> 
      </g:else> 
     </g:each> 
     </tr> 
    </g:each> 
</table> 

ありませんが、私は、唯一の純粋なJDBCを任意のORM技術を使用していない

結果。私は基礎を下にしています(返される行の制限、結果のページングと基本レイアウト)。今私は並べ替えなどのより高度な機能に入る必要があります。

私はGrailsの最新バージョンを使用していますが、この機能の一部を手に入れることができるプラグインがあるのだろうかと思います。または、誰かがこれに対応できる良いJS拡張またはライブラリを知っているかもしれません。

+0

のGrails/GSPについては考えますが、JSP /サーブレットのための一般的な考え方は[こちら]見つけることができます(http://stackoverflow.com/questions/384189/how-do-i-make-a- java-resultset-available-in-my-jsp)(プレーンJSP /サーブレット)と[ここ](http://stackoverflow.com/questions/4407861/how-to-send-a-resultset-object-in-jsp -back-to-html-javascript)(JS/jQueryの助けを借りて)それは新しい洞察につながるかもしれません。 Javaレベルではなく、DBレベルでページングとソートを行いたいことに注意してください。ここでも一般的な考え方については、[here](http://stackoverflow.com/questions/1986998/resultset-to-pagination)を参照してください。 – BalusC

答えて

3

私はResultSetがJSP/GSPの近くのどこにも入るべきではないと思います。永続性層から決して出てはいけません。

ResultSetはデータベースカーソルです。これは希少なリソースです。それを閉じる責任は、それを作成したメソッドの中にとどまるべきです。

適切な方法は、ResultSetをオブジェクトまたはコレクションにマップし、スコープでクローズし、オブジェクト/コレクションをJSP/GSPに渡して、適切に表示/並べ替え/表示することです。

+0

申し訳ありませんが、もっと明確にすべきでした。結果は、GroovyRowResultオブジェクトのリストのビューに送られます。これらは、KVPの関連付けをしたマップのコレクションです。私は、JSP/GSPページ上のどのような変換されたフォーム(つまり、List、Collection、Set ...)であっても、ResultSetオブジェクトの結果を表示することについて質問していたはずです。私は一度それを持っていると、ビュー上のそのデータのコントロールをもっと探しています。しかし、私はビューからパーシスタンス層を分離するあなたの見解に完全に同意します。私の本当の問題からあなたを導き出して申し訳ありません。 – jonsinfinity

0

解決策の設計に関して完全にduffymoに同意します。 Grailsでは、データアクセスをServiceクラスにカプセル化し、Serviceクラスを使用してデータを取得できるtaglibでプレゼンテーションをラップすることができます。

JDBC経由で直接SQLを使用している場合は、ソート(SQLでの順序付け)を行います。 GSQLを使用して少しGroovinessをSQLに追加すると、docsはGroovy SQLを使用するバックグラウンドを開始するのに適しています。

+0

返事にPaulに感謝します。私はduffymoに応答し、いくつかの問題を明確にしました。 Groovy SQLを使用して結果を取得しています。 SQLを使用してソートを行う際に問題となるのは、DBを繰り返し呼び出す必要があることだけです。私はそれを避けようとしています。私は現在のGSPページにあるデータを制御できる解決策を探しています。現在、私はデータをテーブル構造に入れています。おそらくJavaScriptを使った解決策があるか、それが作成された後にテーブルのソートを制御できるものがあるのだろうかと思います。 – jonsinfinity

0

質問はJSPのデータを並べ替えるための方法で、JSのようなものを示唆していました。


だから... http://code.google.com/apis/ajax/playground/#motion_chartと他のGoogleのグラフとテーブル - これは本当にかわいい、もちろんソート可能です。

それらにデータを提供するには、list/array/JSONをJSPに渡し、サンプルとして提供されたJS内でいくつかのループを使用するだけです。

0
<table class="main_grid_table" width="100%"> 
<thead> 
<h3>Number of items found are ${numberofrows}</h3> 
<th class="main_grid_column"><b>Factory Id</b></th> 
<th class="main_grid_column"><b>Applicant Name</b></th> 
<th class="main_grid_column"><b>Designation</b></th> 
<th class="main_grid_column"><b>Factory_name</b></th> 
<th class="main_grid_column"><b>Situation of Dist</b></th> 
<th class="main_grid_column"><b>Police Station</b></th> 
</thead> 
<% while(resultset.next()) 
{%> 
<tr> 
<td align="center" class="main_grid_column"><a href="printAmmendmendFormOne.htm?facid=<%=resultset.getString("Fac_id")%>"><%=resultset.getString("Fac_id")%></a></td> 
<td align="center" class="main_grid_column"><%=resultset.getString("Appname")%></td> 
<td align="center" class="main_grid_column"><%=resultset.getString("Designation")%></td> 
<td align="center" class="main_grid_column"><%=resultset.getString("Factory_name")%></td> 
<td align="center" class="main_grid_column"><%=resultset.getString("Situation_f_district")%></td> 
<td align="center" class="main_grid_column"><%=resultset.getString("nearest_police_station")%></td> 
</tr> 
<%}%> 
<tbody> 
</tbody> 
</table> 
+1

これは役に立ちます –