- PR -

Strutsタグを用いたページ切換えについて

投稿者投稿内容
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2004-01-28 14:01
現在Strutsタグを用いたDB検索フォームの、ページ切換え機能について勉強中であり、
NEXTページの動的な遷移の方法について分からず悩んでおります。
ソースを以下に記載します。
*************************************************************************
<html:form method="post" action="managerMemberSearch">
<html:submit property="fifthSearch">検索(5件表示)
</html:submit>
</html:form>
**************************************************************************
<logic:iterate name="managerMemberForm" id="member"
property="resultList" length="5">
<html:form method="post" action="managerMemberSearch">
<logic:iterate name="managerMemberForm" id="member" property="resultList" offset="5" length="5">
<html:submit property="next">次へ</html:submit>
</logic:iterate>
</html:form>
</logic:iterate>
**************************************************************************

上記のプログラムにて、初回のみNEXTページの参照は可能ですが、
(当然ですが)その次のページへ遷移できません。
次のページへ遷移した情報を保持して、更に次のページ、次の・・・と、
DBからデータを読み取るようなことは可能でしょうか。
その手法をご教授いただきたく、投稿させていただきました。
宜しくお願い致します。





ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2004-01-28 19:14
引用:

ソウさんの書き込み (2004-01-28 14:01) より:
現在Strutsタグを用いたDB検索フォームの、ページ切換え機能について勉強中であり、
NEXTページの動的な遷移の方法について分からず悩んでおります。
上記のプログラムにて、初回のみNEXTページの参照は可能ですが、
(当然ですが)その次のページへ遷移できません。
次のページへ遷移した情報を保持して、更に次のページ、次の・・・と、
DBからデータを読み取るようなことは可能でしょうか。



可能です。Struts ではないサンプルなら検索するといろいろ見つかるので、
それを Struts に応用するよろし。(もしかしたら Struts のサンプルも
あるかもしれません)。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-01-28 19:40
わからないのは Action クラスでの処理でしょうか?
それとも SQL の書き方でしょうか?

Action クラスでは、現在のページ数から次のページで表示する開始行数、終了行数を計算します。

SQLは、Oracle なら rownum 、PostgreSQL なら offset/limit を使います。
DB2/MySQL は知りません。
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2004-01-28 20:16
ご返信ありがとうございます。

>可能です。Struts ではないサンプルなら検索するといろいろ見つかるので、
>それを Struts に応用するよろし。(もしかしたら Struts のサンプルも
>あるかもしれません)。
勉強します。

>わからないのは Action クラスでの処理でしょうか?
>それとも SQL の書き方でしょうか?
どちらでもないかもです。
JSPで、Strutsタグを動的に操り上記のようなプログラムを作成しようとしております。
property="resultList"のデータからページ毎に欲しいところだけ取得するか、
offset="5" をページ毎に動的に操作するかだと思いますが、その手法について
悩んでいます。

>それとも SQL の書き方でしょうか?
DBの方から毎回データを引っ張ると、動作速度に影響が出そうなので
今回は導入しません。


koji
大ベテラン
会議室デビュー日: 2002/12/25
投稿数: 100
投稿日時: 2004-01-29 10:23
便乗で質問させてください。
私も同じ事で、どのように実装したものか悩んでいます。

・全データ(コレクション)をセッションに保持
・現在のページ数をセッションに保持

という方法で出来るだろうと思っています。ですが、offset="?"の部分を
動的に変更しなければならず、そこはどのようにすれば良いのか悩んでいます。
<logic:iterate name="managerMemberForm" id="member" property="resultList" offset="<bean:write name="page" property="row"/>" length="5">
というように、タグの中にタグって埋め込めないですよね?そこで悩んでいま
す。
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2004-01-29 11:00
引用:

ひろさんの書き込み (2004-01-28 20:16) より:
JSPで、Strutsタグを動的に操り上記のようなプログラムを作成しようとしております。
property="resultList"のデータからページ毎に欲しいところだけ取得するか、
offset="5" をページ毎に動的に操作するかだと思いますが、その手法について
悩んでいます。



私のやり方は、セッションに格納したリストとページ番号から次に表示すべきデータを取り出してリストにして、JSP に渡す、という方法です。JSP は
「渡されたリストのどこからどこまで表示」ではなく
「渡されたリストを表示」になります。

引用:

>それとも SQL の書き方でしょうか?
DBの方から毎回データを引っ張ると、動作速度に影響が出そうなので
今回は導入しません。


メモリは大丈夫ですよね?メモリと速度のトレードオフですよ。
さやべえ
常連さん
会議室デビュー日: 2003/03/13
投稿数: 33
投稿日時: 2004-01-29 11:09
さやべえです。

<code>
<logic:iterate name="managerMemberForm" id="member" property="resultList" offset="5" length="5">
</code>

私は、タグのなかに動的に値を入れる時には、

<code>
<logic:iterate name="managerMemberForm" id="member" property="resultList" offset='<%= hogehoge %>' length="5">
</code>

とやっております。シングルクォートで囲むところがミソです。
これでFormBeanの値やSession等の値をつっこむことができます。
koji
大ベテラン
会議室デビュー日: 2002/12/25
投稿数: 100
投稿日時: 2004-01-29 11:20
ばんさん、さやべえさん、ありがとうございます。

>ばんさん
なるほど、その手がありましたね。Actionでコレクションから表示する部分だけを
切り出して、別オブジェクトでセッションに保存しておくんですね。なるほどー。

>さやべえさん
なるほど。やはりスクリプトレットを一切書かずに、というのは無理なんですね。
Strutsの入門書の一部をちょっと読んだ程度の知識しかないのですが、出来るだけ
タグだけでやった方が良い、と書いてあったものですから悩んでました。

>ひろさん
レス乗っ取りみたいですいません。私の質問は解決いたしました。ありがとうご
ざいました。

スキルアップ/キャリアアップ(JOB@IT)