ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Javaの画面表示-その6:Struts(その6:struts-config.xmlの設定)

2006-12-31 12:37:33 | JavaとWeb

 シリーズJavaの画面表示のつづきです。今、Strutsを具体的な例をあげてやってます。手順は、以下のとおりです。

1.画面遷移を考える。
2.(別にやんなくてもいいけど)それを以下のように図にしておくと、あとで楽です
3.画面のJSPを作成します
4.Strutsタグをいれて、JSPを修正します
5.画面に対応するActionFormを作ります
6.Submitでサーバーで処理するところに対応する、Actionを作ります
7.struts-config.xmlを設定します
8.モデルを作って、Actionから呼び出します

 前回6まできたので、今回は「7.struts-config.xmlを設定します」です。




■具体例について
 今回はいつもと違い、先に具体例、struts-config.xmlを示して、そのあとで、内容を書きます。

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
	<form-beans>
 		<form-bean name="inputForm" type="pac1.inputForm" />
 		<form-bean name="kekkaForm" type="pac1.kekkaForm" />
		<form-bean name="errorForm" type="pac1.errorForm" />
	</form-beans>
	<action-mappings>
		<action path="/shori" type="pac1.ShoriCtrl"
				name="inputForm" scope="request" validate="false">
			<forward name="success" path="/jsp/kekka.jsp" />
			<forward name="error" path="/jsp/error.jsp" />
		</action>
	</action-mappings>
</struts-config>

(上記 < > は、本当は半角です)

ここで、画面のイベントやフォワードの名前とJSPの関係は、以下のとおりです

(この設定ファイルを書きやすくするため、上記の図を作っています)
また、ActionFromのクラスと画面の関係は、以下のとおりです

 input.jsp  inputForm(ただし、error.jspのフォーム部分と同じ)
 error.jsp  errorForm(出力用)
 kekka.jsp  kekkaForm(JSP自体が、画面出力しかない)


さて、上記のXMLは、おおきく3つの部分に分かれます。
・DOCTYPE部分
・画面のActionForm定義:form-beans
・画面のAction定義:action-mappings
以下、それぞれについて説明します



■DOCTYPE部分
 決まり文句です。なお、これは1.3用です。
 1.1は、1.3と書いてあるところが違うのですが、
 1.3で1.1を使わないほうがいいと思います(つまり、バージョンを直したほうがいいと思います。form-beanとaction-mappingsだけなら、たぶん、それでOKそう。。)



■画面のActionForm定義:form-beans
 form-beansタグの中に、form-beanタグを書き、1ActionFormクラス1form-beanで書きます。こんなかんじ

  <form-bean name="名前" type="パッケージ名.アクションクラス名" />

 名前は、あとで使うaction-mappingsのところで使います。
 テキトーに付けてください(というか、クラス名と同じにするとか、なんか決まりをつくったほうがいいです)。



■画面のAction定義:action-mappings
 action-mappingsタグの中に、actionタグを書き、1Actionクラス1actionで書きます。こんなかんじ

<action path="JSPで書いたaction" type="パッケージ名.クラス名"
    name="入力画面の名前" scope="request" validate="false">
    <forward name="フォワード名" path="フォワードするJSP" />
       :
</action>

 ”JSPで書いたaction”とは、JSPファイルのhtml:formタグのaction属性で指定したものです。

 ”入力画面の名前”とは、このActionの入力画面に対応する、ActionFormの名前なのですが、その名前は、上記「画面のActionForm定義:form-beans」で書いた、名前のことです。

 ”フォワード名”とは、Actionクラスで
   return map.findForward("success");
 でsuccessとか書いた、あのmap.findForwardの引数として指定したものです。

 ”フォワードするJSP”は、JSP名を書いてください(このアプリの下から書きます。なので、/jsp/kekka.jspとか、書くことになります)。




 これだけ書けば、動きます。

 で、このシリーズの次回では、「8.モデルを作って、Actionから呼び出します」なんですけど、モデル部分は、Javaの画面表示-その4:JSPで表示、JavaBeanで処理(その2:ソース) で示したShori.javaと同じですので、それは軽く触れる程度にして、中心的な話題は、配置について書こうと思います。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 安倍首相夫人のアッキーブロ... | トップ | 中央官庁、マイクロソフトの... »
最新の画像もっと見る

JavaとWeb」カテゴリの最新記事