- PR -

tomcat struts Actionでsessionに保存したformを jspで表示する方法

1
投稿者投稿内容
タンちゃん
会議室デビュー日: 2004/04/02
投稿数: 19
投稿日時: 2005-01-21 11:54
皆さんこんばんは!

質問がありまして、書き込ませていただきます。


環境
Windows2000 Professional SP4
IIS 5.0
JDK 1.4.1_01
Tomcat 4.1.18
struts 1.02
MSSQL2000 SP3


ActionFormに値(配列)をsetして、

ActionでActionFormをSessionにsetAttributeしました。

sessionに保存した値(配列)を.jsp画面から表示したいのですが…

なかなか表示できません。

(1)struts-config.xml
<form-bean name="S_OutSelectForm" type= "jp.co.tokyo_biso.cs24h.web.s_out.S_OutSelectForm"/>

<action path="/viewS_OutSelectDivid"
type="S_OutSelectDividAction"
name="S_OutSelectForm"
scope="request"
validate="true"
input="/s_out/s_out_select.jsp">
<forward name="..." path="/....do" />
</action>



(2)Action
S_OutSelectForm frmSelect = (S_OutSelectForm) form;
frm.setArrGroup(arrGroup);

...
...

HttpSession session = request.getSession(true);
session.setAttribute("s_out_select", frmSelect);
return (mapping.findForward("success"));



(3)jsp
1)<jsp:useBean id="S_OutSelectForm" scope="request" class="jp.co.tokyo_biso.cs24h.web.s_out.S_OutSelectForm"/>

2)<jsp:useBean id="s_out_select" scope="session" class="jp.co.tokyo_biso.cs24h.web.s_out.S_OutSelectForm"/>
   エラーa)Cannot find bean s_out_select in scope request



‘(3)jspの1)’の場合は配列が画面に表示されます。
しかし、‘(3)jspの2)’の場合には画面に表示できず‘エラーa)’が表示されます。


なぜsessionを使うかと言いますと、
最初表示された画面(画面1:検索画面:配列が表示されている)から他の画面(画面2:結果画面)に遷移するとき、
Validateでチェックを行い、エラー時画面1に戻ります。
画面1に戻ってきた時、最初表示されていた配列は消えてしまいます。
それで、配列をsessionに保存すればエラー時、画面1に戻ってきても配列の表示が可能だと思いました。



ここで、質問です。
質問1.‘(3)jspの2)’の場合‘エラーa)’になった理由が知りたいです。

質問2.‘(1)Actionでsessin’に設定したフォームを‘(3)jsp’から参照して表示する方法が知りたいです。

以上です。

それでは宜しくお願いします。

タン
タンちゃん
会議室デビュー日: 2004/04/02
投稿数: 19
投稿日時: 2005-01-21 17:00
解決できました。

読んでいただいた皆さん、ありがとうございます。

原因:sessionからFormを取得するところでは
     scope="session"
   FormからPropertyを取得するところでは
     scope="request"
   だったので、出来なかったです。

解決策: FormからPropertyを取得するところを
     scope="session"
     に修正しました。

以上。
わんこ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 46
投稿日時: 2005-01-24 18:38
こんばんは。
せっかくStrutsつかっているなら
Strutsのカスタムタグを使ってみたらどうでしょうか?
そしたらJSPではスクリプレット使わなくて済む(ほとんど)と思います
1

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