- PR -

strutsでvalidateを使用した処理についてのご相談

投稿者投稿内容
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-10-03 11:33
strutsで開発を行っております。

フレーム内に表示させたjsp(検索画面)から、検索ボタンを押下することで
フレーム内ではなく、新しい画面をポップアップさせ、そこに検索結果画面を
表示させております。

ご相談の内容として、
検索画面で入力した値をActionでFormにセットしたValidateメソッドを呼出し、
ActionErrorsに値があるかどうかでreturn (mapping.findForward)させているのですが、
結果画面を<html:form target="reportAccountProperty2">の処理で新しい画面表示をさせて
いることから、入力エラーがあった際に検索画面がフレーム内のとは別に、
新しくポップアップされて検索画面とそのエラーワードが表示されてしまいます。

Validate機能でどのようにしたら、
・入力エラーがあった際はフレーム内の元の検索画面に
・入力エラーがない場合は新しい画面で結果画面を表示
することができますでしょうか?


test1.jsp(検索画面)====================================================================

<html:form action="/test1" target="test2">
<html:text property="date1" />
<html:submit property="submit" value="検索"/>
</html:form>

===============================================================================


action.java====================================================================

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

TestForm form = (TestForm) form;

// 入力チェックを行う
ActionErrors wActionErrors = new ActionErrors();
if(form.isValidate(wActionErrors) != null) {
request.setAttribute("key", wActionErrors);
return (mapping.findForward("ng"));
}else{
return (mapping.findForward("success"));
}

===============================================================================

actionForm.java================================================================

public ActionErrors isValidate(ActionErrors wActionErrors) {
// 入力チェックの処理
return wActionErrors;
}

===============================================================================


お忙しいところ、申し訳ございません。
皆様、アドバイスをお願い致します。



[ メッセージ編集済み 編集者: java初心者 編集日時 2007-10-03 13:06 ]
さる
ぬし
会議室デビュー日: 2005/07/14
投稿数: 276
お住まい・勤務地: 実家戻ったw
投稿日時: 2007-10-03 12:01
最近はStrutsから離れてる為うろ覚えですが、
Servletを書き換えれば良いのではないでしょうか。
ykSiR
会議室デビュー日: 2006/10/03
投稿数: 16
投稿日時: 2007-10-03 12:57
targetを_self、フォワード先は検索画面にした状態で、
検索画面内で
・入力されていなければ普通に表示
・入力エラーがあった場合はエラーワードを表示
・入力エラーがない場合はJavaScriptで結果画面をポップアップ
でいかがでしょうか
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-10-03 14:22
さる様
ykSiR様

アドバイスありがとうございます。

大変申し訳ございませんが、
ご回答に対して、スキル不足からイメージが
出来ませんでした。

もし、お時間がありましたら、
もう少し、具体的にアドバイスを頂けないでしょうか?

宜しくお願い致します。
さる
ぬし
会議室デビュー日: 2005/07/14
投稿数: 276
お住まい・勤務地: 実家戻ったw
投稿日時: 2007-10-03 14:33
簡潔に言いたかった事を書くと
strutsのソースを読んだらどう?
です。
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-10-03 15:24
1.エラーチェックのみのservletを用意し、エラー結果を検索画面に返す。
2.エラーだったらエラー表示。
3.正常ならば、onload時にjavascriptから、検索結果を表示する別画面を表示する。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-10-03 17:06
さる様
KOX様

お忙しいところ、ご返信ありがとうございます。

javascriptから検索結果を表示させたいのですが、
Actionで、DBから検索結果を取得している関係で、
Actionへいかず別画面へのwindow.open()が出来ないのです・・・。
(入力した日付をActionへ渡さなくてはならないんです・・・。)

さる様のおっしゃる通り、
ソースの確認を再度してみます。

お時間がありましたら、
アドバイスをお願い致します。
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-10-03 18:48
>Actionへいかず別画面へのwindow.open()が出来ないのです・・・。
javascriptだけで行うわけではありません。
言葉足らずですね。申し訳ない。

エラーチェックと検索結果の表示を別servletで行います。
3.のときに、onloadと同時に、検索結果を表示するservletを呼びます。
3.のときにはチェックが通っているのでエラー判定は不要なります。
(エラー判定をしたというチェックは必要。)

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