プロが教えるわが家の防犯対策術!

上下2分割のjspフレームページがあります。
環境:Struts1.2、jdk1.4.2

上段A・・・テキストボックス配置、errorsタグ記述
下段B・・・Aのformをsubmitするボタン配置
親C・・・A、Bの親。以下詳細
<frameset>
<html:frame href="A.jsp" frameName="A" />
<html:frame href="B.jsp" frameName="B" />
</frameset>

※struts-config
<action path="/XXXAction"
type="XXXAction"
name="XXXForm"
validate="false">
<forward name="success" path="D.jsp"/>
<forward name="failure" path="C.jsp"/>
</action>

BからAのformをparent.A.document.forms[0].submit()でsubmitしますが、submit後に実行されるXXXActionクラスでActionErrorをセットした後にCを呼び出すとAに記述しているerrorsタグがエラーを表示しません。

configの<forward name="failure" path="C.jsp"/>を「path="A.jsp"」とするとerrorsタグのエラーメッセージが表示されますが、Aのformのtarget指定は"top"なのでAを指定するとフレームは消えてしまい、Bが表示されなくなります。top指定を外すとエラー時にはABが表示された状態でAにエラーが出ますがエラーを出さないときはAにDが表示され、画面は上からD、Bとなり、不要なBが残ったままになります。

errorsタグでのエラー表示はforwardで指定されたページにしか出ないとすればフレーム使用時には使えないのでしょうか。

A 回答 (1件)

エラーメッセージのスコープはrequestなので、フレームでまたぐと消えてしまいます。


メッセージをセッションに格納してはどうですか?
その際、表示し終えたメッセージをセッションから消すのを忘れないようにしてください。

参考URL:http://www.javaroad.jp/opensource/js_struts17.htm
    • good
    • 0
この回答へのお礼

その方法でやってみます。ありがとうございました!

お礼日時:2007/11/21 01:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!