Strutsでフレーム使用時のerrorsタグ/エラー表示

このQ&Aのポイント
  • Strutsを使用してフレームを使ったページでerrorsタグを使ってエラーを表示する方法について
  • フレームを使用したJSPページでerrorsタグを利用してエラーメッセージを表示する際の問題と解決方法
  • Strutsでフレームを使ったページでのエラーメッセージ表示に関する問題と解決策
回答を見る
  • ベストアンサー

Strutsでフレーム使用時のerrorsタグ/エラー表示

上下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で指定されたページにしか出ないとすればフレーム使用時には使えないのでしょうか。

  • drg75
  • お礼率51% (50/98)
  • Java
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
noname#49428
noname#49428
回答No.1

エラーメッセージのスコープはrequestなので、フレームでまたぐと消えてしまいます。 メッセージをセッションに格納してはどうですか? その際、表示し終えたメッセージをセッションから消すのを忘れないようにしてください。

参考URL:
http://www.javaroad.jp/opensource/js_struts17.htm
drg75
質問者

お礼

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

関連するQ&A

  • フレーム内に画像を表示する際、画像をフレームサイズに合わせたい。

    Webページで、フレームを使ってるんですが、フレーム内に表示する画像のサイズがマチマチで(画像の元サイズがとても大きかったりして)見栄えが良くありません。 main.htmlというソースを置いて、そこからタイトル表示用HTMLと画像リスト用HTMLをフレーム内に表示。 画像リスト用HTMLからAタグで画像表示用フレームに画像を表示するよう記述。 単にこれだけだと、ブラウザごとに画像サイズがフレーム内に収まるよう調整されたり、されなかったりなんですよ。 どうにか、強制的にフレーム内に表示させるようにする方法を教えてください。 ------------------------------------------------- main.htmlの抜粋↓ ------------------------------------------------- <frameset rows="50,*"> <form name="frm1"> <frame src="title.html" name="ue"> <frameset cols="187,*"> <frame src="list.html" name="hidari"> <frame src="./img/1.jpg" name="migi"> </frameset> </form> </frameset> ------------------------------------------------- list.htmlの抜粋↓ ------------------------------------------------- <a href="img/2.jpg" target="migi">19</a>

  • フレーム分けのタグですが、上下分割の境界線を消せないでしょうか?

    <HTML> <HEAD> <TITLE> [上と下左右分割フレームの基本型] </TITLE> </HEAD> <FRAMESET ROWS="30%,70%"> <FRAME SRC="ue.html" NAME="top"> <!-- 上に表示するHTMLの指定 --> <FRAMESET COLS="30%,70%"> <FRAME SRC="hidari.html" NAME="b_lt"> <!-- 下左に表示するHTMLの指定 --> <FRAME SRC="migi.html" NAME="b_rt"> <!-- 下右に表示するHTMLの指定 --> </FRAMESET> </FRAMESET> </HTML>

    • ベストアンサー
    • HTML
  • cgiで表示したフレームに結果を表示したい

    cgiで作成した画面でフレームを左右に分割したのですが、 内容が表示できません。 cgiで作成したフレーム分割した画面に 結果を表示させる方法を教えてください。 (cgiの記述の仕方が間違えているのか?  htmlの<frameset>、<frame>タグの設定の仕方が悪いのか?  そもそも全体の流れの考え方が間違えているのか?  分からず、行き詰ってしまっています…。) どうか宜しくお願いいたします。 ■作成したファイルは下記のような仕様です。 TEST.html :ボタン操作で、AAA.ccを実行する。 AAA.cc   :作成した画面上のリンクをクリックすることでBBB.ccを実行する。         画面は左右にフレーム分割し、         左側フレームにAAA自身の実行結果として取得したファイルのリストを         右側フレームにファイルリストでリンクした画面を表示させる。 BBB.cc  :AAAから指定されたリンクを加工して開く。 ■ファイルの内容は下記のような感じです…。 >>>TEST.html <form action="**パス**/AAA"> <input type="hidden" name="path" value="**AAAに渡すデータ**"> <input type="submit" value="リスト"> </form> >>>AAA.cc cout << "<frameset cols=\"30%,*\">" << endl; cout << "<frame src=\"**パス**/\" name=\"listA\">" << endl;  :(省略) cout << "<a href=\"**パス**/BBB?path=" << BBBに渡すデータ << "\" target=\"ContensB\" >" << endl;  :(省略) cout << "<frame src=\"**パス**/\" name=\"ContentsB\">" << endl; cout << "<html>" << endl; cout << "<head>" << endl; cout << "<title>Contents</title>" << endl; cout << "</head>" << endl; cout << "<body>" << endl; cout << "</body>" << endl; cout << "</html>" << endl; cout << "</frameset\">" >>>BBB.cc  :(省略) cout << getContents() << "<br>" << endl;  :(省略) どうか宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • フレームの表示順について。

    <FRAMESET ...>   <FRAME name="a" src="a.aspx" ...>   <FRAME name="b" src="b.aspx" ...> </FRAMESET> a はボタンなどの貼り付いたコントロール部分を表示するページ。 b は帳票を表示するページ。 b が完全にロードされたことが完了した後に、a がロードされるようにして、a 上のボタンを初めて押せるようになるようにしたいのですが、 HTMLレベルでフレームの表示順を設定することは不可能なのでしょうか???

    • ベストアンサー
    • HTML
  • 教えてください:strutsのhtml:formタグがjspに展開された状態の、actionの値について

    java初心者です。 どなたか教えていただけませんでしょうか? JAVAのstrutsを使用してソフトを作成しています。 JSPに記載した「<html:form action="/authentication" focus="id"> 」 との記述が、WEB(IE)に展開されたソースを見ると、「<form name="AuthenticationForm" method="post" action="/strutsTest/authentication">」 に変換されています。 action="/authentication"と記述しているにもかかわらず、 action="/strutsTest/authentication"と展開されているのですが /strutsTestが自動的に付与されているのは、なぜなのでしょうか? なにか設定するところがあるのでしょうか? ※struts-config.xmlに指定したpathと一致しない為、404NotFoundになるので自動設定しないように変更したいのです。 ちなみに環境は struts-1.3.10 Apache Tomcat 6.0.14 Server EclipsVersion: 3.4.2 pakage名:struts プロジェクト名:strutsTest struts-config.xmlの設定   <form-beans> <form-bean name="AuthenticationForm" type="struts.AuthenticationForm"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="fail" path="/login.jsp"/> </global-forwards> <action-mappings> <action path="/authentication" name="AuthenticationForm" type="struts.AuthenticationAction" scope="session"> <forward name="success" path="/welcome.jsp"/> <forward name="fail" path="/login.jsp"/> </action> </action-mappings> login.jsp <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログイン画面</title> </head> <body> <html:errors/> ID・パスワードを入力してください。 <html:form action="/authentication" focus="id"> <html:text property="id" size="16"/> <br> <html:password property="pas" size="16" redisplay="false" /> <br> <html:submit property="submit" value="送信"/> <html:reset value="リセット"/> </html:form> </body> </html:html> 動作順は、login.jsp => AuthenticationAction.class => welcome.jsp です。 よろしくお願いします。

  • strutsでフレームの分割ができません。

    strutsで、 http://struts.wasureppoi.com/taglib/03_frame.html を見ながらフレームの分割を下記のように行おうとしていますが、エラーが表示されます。 ソース ---- <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html> <head> <title>テスト</title> </head> <frameset cols="30%,*"> <html:frame page="l.jsp"/> <html:frame page="r.jsp"/> </frameset> </html:html> ---- エラーメッセージ ---- HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /index08.jsp:13 10: <title>テスト</title> 11: </head> 12: <frameset cols="30%,*"> 13: <html:frame page="l.jsp"/> 14: <html:frame page="r.jsp"/> 15: </frameset> 16: </html:html> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.pageURL(TagUtils.java:1070) ---- 別のページを見ると、 <html:frame page="l.jsp" name="hidari"/> とname属性を宣言しているようですが、同様に記述してみると、スコープが無いとエラーが出てしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  struts-1.3.8  JDK1.5 です。 どのように記述すべきか、検索してもヒットしなかったので、恥かしながらここで質問させて頂く事にしました。 どのように直すべきか、分かる方がいらっしゃいましたらご教授頂けないでしょうか?  また、オススメのStrutsの本がありましたら、こちらも教えて頂けたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Struts:フレーム内JSPからcssファイルの参照方法

    htmlタグライブラリのframeで指定したJSPからスタイルシート(*.jsも)の参照ができません。 色々試したのですが、解決方法を教えて下さい。。。 環境はWin2000、Tomcat5、Struts2です。 ↓フレーム呼び出し <frameset rows="50%,*"> <html:frame page="A.jsp"/> <html:frame page="B.jsp"/> </frameset> ※ディレクトリ:/apname/jsp/X.jsp ↓フレーム内(A.jsp) <link rel="stylesheet" href="./C.css" type="text/css"/> ※ディレクトリ:/apname/css/C.jsp ちなみに「href="../css/C.css"」としてもダメなんです。 参照先ディレクトリは色々試したけど使えません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • フレームが表示できない・・・。

    ヤフーのジオシティでHPを作ってるのですが どうやってもフレームが表示されません。 下の↓タグなんですがどこか間違ってるでしょうか? <frameset cols="70%,30%" border="0"bordercolor="BLACK" frameborder="no" framespacing="1"> <frame src="http://www.geocities.co.jp/Hollywood-Screen/1234/*****/abc.html"name="ringo"> <frame src="http://www.geocities.co.jp/Hollywood-Screen/1234/******/abc2.html"name="ringo2"> </frameset> ファイルをアップロードしたからでしょうか? それともIE5.5だからでしょうか?でも普通に 他サイトのフレームは表示されてるし・・・。 どうすればフレームは表示されるのでしょうか??

  • フレームが表示されない…

    今HPを作成してるのですが、色々とタグを試しましたが出来ないの質問します。 自分は、ポケスペというタグで色々と作成できるHPスペースで作ってるのですが、 <p align="center"> <iframe src="http://pksp.jp/*/?o=1" name="menu" frameborder="0" width="20%" height="90%"> </iframe> <iframe src="http://pksp.jp/*/?o=2" name="main" frameborder="0" width="70%" height="90%"> </iframe> </p> というタグで、インナイフレーム?は表示出来るのですが。 <FRAMESET cols="50%,50%" frameborder="NO" border="0"> <FRAME name="left" src="1のURL"> <FRAME name="right" src="2のURL"> </FRAMESET> という、普通の?インナイじゃないフレームは表示されないのです。 どなたか、わかりますか?インナイじゃなくフレームを表示させたいのです。

  • 各フレーム画面にFORMタグ内の情報を送信する。

    <FRAMESET>タグで画面をフレーム分割して呼び出すこと出来ますが、 ここで各フレームを呼び出す際に、そのHTMLファイル内にある とあるFORMタグを指定して、その中のINPUTタグの情報も一緒に 呼び出すフレームへ一緒に送信したいのですが、どのようにやれば よろしいのでしょうか? 実際にサンプルを含めて教えていただけると嬉しいのですが、 ヨロシクお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう