• ベストアンサー

struts-config.xmlの記述方法について

アクションがなく、 jspからjspをよびだしたいのですが、 struts-config.xmlへの記述方法がわかりません。 特例だとは思いますが、ご存知の方 教えてください。

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

  • ベストアンサー
回答No.2

こんな感じですか? ↓struts-config.xml <action-mappings>   …   <action path="/hoge" forward="/hoge.jsp"/>   … </action-mappings> ↓遷移元.jsp <form action="hoge.do">   <input type="submit" value="ほげ"/> </form> 遷移元.jspの[ほげ]ボタンを押下すると、 hoge.jspに遷移します。

dorazaemon
質問者

お礼

具体例をありがとうございました。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

#2です。 <action-mappings>   …   <action path="/hoge" forward="/WEB-INF/hoge.jsp"/>   … </action-mappings> すればWEB-INF内のJSPにも遷移できます。

dorazaemon
質問者

お礼

補足説明ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • thamansa
  • ベストアンサー率40% (95/232)
回答No.3

アクションでする処理がなくても、 "success"でリターンするだけのアクションクラスを NothingAction などの名前で作成するのはどうでしょうか。 普通のアクションと同じようにstruts-config.xmlに記述できます。 No1さんNo2さんのやり方のほうが素直だと思いますが、 この方法だと、他の画面遷移と整合性が取れるのと、WEB-INF内のJSPへ遷移できるメリットがあります。

dorazaemon
質問者

お礼

新たな視点でのご解答ありがとうございました。 勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • hrykhsmt
  • ベストアンサー率50% (5/10)
回答No.1

jspからjspを呼びだすのに struts-config.xmlに定義する必要はないと思います...。 http://localhost:8080/examples/test.jsp のように「xxx.do」を使用せず直接呼べば良いのでは ないでしょうか? jspから次のjspへすぐに遷移したいということでしたら 参考URLのようにJSPの「forward」アクションを すれば良いかと思います...。

参考URL:
http://www.hellohiro.com/jspaction.htm
dorazaemon
質問者

お礼

ありがとうございます。 参考URLも参考にさせていただきました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • struts-config.xmlについて

    strutsを用いて画面遷移を行わせる場合、 <action path="~" type="~" name="~" scope="~"> <forward name="login" path="A"/> <forward name="main" path="B"/> <forward name="sample" path="C"/> <forward name="error" path="E"/> </action> struts-config.xmlにて上記のように記述した場合、 他サーバのJSPファイルを指定することは可能でしょうか? 見当はずれな質問をしていましたらご指摘宜しくお願いします。

    • ベストアンサー
    • Java
  • Strutsで他のプロジェクトへ処理を移す

    Strutsの制御についてお聞きします。 二つのプロジェクトがあった場合、一方のプロジェクトから別のプロジェクトへStrutsのActionMappingで処理を移すことは可能なのでしょうか? 例えば、ProjectA、ProjectBとあった場合、 A.jsp(ProjectA) ↓struts-config.xml(ProjectA) action_A.class(ProjectA) ↓struts-config.xml B.jsp(ProjectB) ↓struts-config(ProjectB) action_B.Action(ProjectB) といった処理です。 うまくいかなくて困っています。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • strutsのstruts-config.xmlでのエラーメッセージ

    こんばんは strutsのエラーメッセージ表示で困っています。 javaでthrowしてstruts-config.xmlのexceptionで エラーを表示します。 以下のようにコーディングしてあり、 key999に定義してあるメッセージを表示することはできます。 しかしmessagesにセットしたメッセージを表示することができません。 messagesにセットしたメッセージを表示するにはstruts-config.xmlの keyはどのように設定すればよいのでしょうか? よろしくお願いします。 *struts-config.xml <exception key="999" type="myException" path="xxxxxxxxxx.jsp" handler="myExceptionHandler"/> *java public ActionForward hoge( ActionMapping map, ActionForm form, HttpServletRequest req, HttpServletResponse res ) throws Exception { try { return map.findForward("XXXXX"); } catch (myException e) { ActionMessages messages = new ActionMessages(); messages.add("error" ,new ActionMessage("001","エラー")); saveMessages(req,messages); throw e; } }

  • struts-config.xmlの設定

    お世話になります。 strutsを使用しlogin画面を作成し、エラーならエラーメッセージを表示させ、成功なら次のページに遷移するようにしたいのですが、 その際のstruts-config.xmlの設定がわかりません。 login画面を以下のように設定(login.jsp) <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <html:html> <head> <title>ログイン画面</title> </head> <body> <html:errors/> <html:form action="/login" method="post"> ユーザID : <html:text property="id"/><br> パスワード: <html:password property="password"/><br> <html:submit value="ログイン"/> </html:form> </body> </html:html> </html> struts-config.xml <form-beans> <!-- sample form bean descriptor for an ActionForm <form-bean name="LoginForm"   //jspのform actionで渡すデータ type="org.apache.struts.validator.DynaValidatorForm"/> end sample --> <!-- sample form bean descriptor for a DynaActionForm <form-property     name="userid" //jsp画面のproperty指定時に渡す type="java.lang.String"/> <form-property name="password" //passwordのとき type="java.lang.String"/> </form-bean> end sample --> </form-beans>      //actionで渡すデータの定義1 <action path="/Login"   //actionで渡すデータ type="org.apache.struts.actions.LoginAction" parameter="/pages/Input.jsp"/> //actionで渡すデータの定義2 <action path="/InputSubmit" type="app.InputAction" name="inputForm" scope="request" validate="true" input="/pages/Input.jsp"/> //actionで渡す定義3 <action path="/edit*" type="app.Edit{1}Action" name="inputForm" scope="request" validate="true" input="/pages/Edit{1}.jsp"/> end samples --> </action-mappings> の箇所を変更するのはわかるのですが、どう変更したらいいかがわかりません。 ログイン成功時画面(loginSuccess.jsp) <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <%@ taglib uri="/tags/struts-html" prefix="html" %> LoginSuccess!! <html:form action="/nextpage" method="post"> <html:submit value="次のページ"/> </html:form> </html> と設定してます。 javaクラスの設定も関係あるのですが、今回は省略してます 。今回したいのはlogin.jsp画面を表示させたいのですが、 その際以下のエラーがでます。 org.apache.jasper.JasperException: An exception occurred processing JSP page /pages/login.jsp at line 19 16: </head> 17: <body> 18: <html:errors/> 19: <html:form action="/login" method="post"> 20: ユーザID : <html:text property="id"/><br> 21: パスワード: <html:password property="password"/><br> 22: <html:submit value="ログイン"/> よろしくお願いします。

  • strutsに関連したxmlのサーブレットマッピング

    失礼致します。 初歩的なことですが質問させてください。 strutsにおけるxmlファイルの記述例は次のようになります。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ここで、新しいサーブレット(download)を追加しようと次のように記述を加えました。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <servlet-name>download</servlet-name> <servlet-class>Download</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-patte <servlet-name>download</servlet-name> <url-pattern>/download</url-pattern>rn> </servlet-mapping> すると、入り口のファイルに対し、「The requested resource (/プロジェクト名/ファイル名.jsp) is not available.」と警告されました。 strutsではサーブレットの追加は出来ないのでしょうか?ご指摘お願いします。

    • ベストアンサー
    • Java
  • S2Strutsの無設定で<html:form>は使えない?

    お世話になります。 現在S2Strutsの開発をおこなっていて無設定Strutsを使おうと思っています。 その際にstruts-config.xmlに記述なしでPOJOでクラスを作成し、入力フォームを作成したのですが通常strutsで使用する。 <html:form>タグでエラーが発生してしまいました。 おそらくstruts-config.xmlにマッピング記述がない為に発生しているのだと思いますが無設定Strutsでは<html:form>は使用できないのでしょうか? 代替え案などがあればご教授ねがえればと思います。 サンプルはmayaa板のみでJSPを使ったものがなかったので悩んでいます。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • ☆Struts ActionServletの内部動作について

    Struts勉強中のものです。教えて下さい♪ struts-config.xmlより抜粋... <form-bean name="loginForm" type="jp.co.struts.LoginForm"/> <!----> <action-mappings> <!--Add action --> <action path="/login" name="loginForm" type="jp.co.struts.LoginAction"> <forward name="success" path="/jsp/loginSuccess.jsp"/> <forward name="error" path="/jsp/loginError.jsp"/> </action> </action-mappings> 以下URL画面の中段の画像の説明であるのですが、 (http://www.itmedia.co.jp/enterprise/0310/06/epn03_4.html) ActionServletは、struts-config.xmlを参照して、ActionFormクラスを処理した後にActionクラスを実行する内容の記載がありますが、内部的にはまず、Actionクラスを判別してから、nameで紐付けてActionFormクラスを判別しているのでしょうか?? 上記のstruts-config.xmlを例に具体的に言いますと。 まず、login.doが実行された場合、 <form-bean name="loginForm" type="jp.co.struts.LoginForm"/> には、path="/login" の属性がないので、まず、 <action path="/login" name="loginForm" type="jp.co.struts.LoginAction">を読み込んで、name属性とひもづく、form-beanのtype(type="jp.co.struts.LoginForm")に設定されたクラスを処理しているのでしょうか?? なぜ form-bean にpath属性を作って、login.doが実行された際に適切なform-beanを判別するようになっていないのかが疑問です・・・・ わかりずらい説明で申し訳ないですが。ご教授下さい。 また、このへんの説明が詳しく書いている本、サイト教えて下さい。 頑張ってStrutsを深く理解していきたいです♪

  • Strutsで画面開設時に・・・

    Strutsで画面を開設時に ボタン等を押下することなく 結果一覧を表示させる方法はありますでしょうか?? 前の画面から遷移するためのボタンを押下した時ではなく、 画面が開いた時に、結果一覧を表示させる操作がしたいのです。 struts-config.xmlをどうにかいじって Action.classのexecute()を ボタン等の操作なくJSPファイルに読み込む方法ないですかね・・・・。

    • ベストアンサー
    • Java
  • strurs-config.xmlで困っています

    struts-conifg.xmlの<action name=""・・・/>の部分で複数のFormを指定することができるのでしょうか? お願い致します。

  • コンパイラ struts

    フレームでコンパイラができません 助けてください top.html→menu.html、syouhin_kensaku.html,index.html menu.html(あ、い)(あ)を押したらhtmlはでますがjspが404がでます なぜでしょう struts-confing.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org.struts/dtds/struts-config_1_2.dtd"> <struts-config> <!-- データソースの設定 --> <date-sources> <!-- BasicDateSourseクラスを利用する --> <date-sourse typr="org.apache.commons.dbcp.BasicDateSourse"> <!-- JDBCドライバクラス名の設定 --> <set-property="driverClassName" value="com.mysql.jdbc.Driver"/> <!-- JDBCの接続文字列の設定 --> <set-propety propety="url" value="jdbc:mysql://localhost/struts?useUnicode=true&amp;characterEncoding=Windows-31J"/> <!-- MySQLのユーザーIDの設定 --> <set-propety propety="username" value="root"/> <!-- MySQLのパスワードの設定 --> <set-propety propety="passward" value="root"/> </date-sources> <!-- Form情報の定義 --> <form-beans> <form-bean name="AccountForm" type="action.form.AccountForm"/> </form-beans> <!-- アクションの定義 --> <action-mappings> <!-- Form情報をAccountFormとして、action.AccountFormクラスをアクションとして指定する --> <!-- Form情報はリクエストスコープに格納される --> <action name="Account" type="action.UpdateAction" path="/UpdateAction" scope="request" > <!-- アクションの遷移先として論理名をUpdate ファイルパスを/webJSP/index.jspとする --> <forward name="Update" path="/webJSP/index.jsp" /> </action> </action-mappings> <message-resources parameter="jp.co.jetsystem.message.MessageResources.properties"/> </struts-config>