Springの設定

やっと本題の Springの設定に進みます。
ここでは、以下のことを行いますが、Springの設定というのは、色々なものが絡みあって
成り立っており、全体が出来上がって初めて、個々の設定の意味が分かります。
ということで、最初は分からないことがあっても、本記事のまま、設定をお願いします。

  1. BaseBeans.xmlファイルの追加
  2. SpringWeb2-servlet.xmlファイルの追加
  3. web.xmlファイルの修正
  4. index.jspファイルの修正
  5. login.jspファイルの追加
  6. menu.jspファイルの追加
  7. LoginInterface.javaファイルの追加
  8. LoginLogicDummy.javaファイルの追加
  9. LoginCtrl.javaファイルの追加

1. BaseBeans.xmlファイルの追加

Eclipseの Package Explorer で、「src/main/webapp/WEB-INF」を右クリックして、
「New」→「File」を選び、ファイル名を「BaseBeans.xml」とします。

ファイルの中身は、下図の内容をそのまま入力してください。

2. SpringWeb2-servlet.xmlファイルの追加

先ほどと同じように、「src/main/webapp/WEB-INF」に「SpringWeb2-servlet.xml」という
ファイルを新規作成します。このファイルには、下図の内容を入力します。
このファイルの大半は、SpringMVCの設定ですので、来週(7月第2週)の記事で、意味を解説します。

3. web.xmlファイルの修正

次にWebアプリが、springの設定ファイルを読み込むように、web.xmlを修正します。
下図の内容にするのですが、設定内容は、大きく2つに分かれます。

前半部は、BaseBeans.xmlというファイルを認識させて、読み込ませるためで、
<context-param> の内容と、<listener< がそれに相当します。
org.springframework.web.context.ContextLoaderListenerって何?と聞かれたら、「決まり文句です」
と答えてください。そういうものです。

後半部は、SpringWeb2-servlet.xmlというファイルを認識させて、読み込ませるためで、
<servlet>の内容がそれにあたります。このとき、<servlet-name>は 特に重要です。
どうやら、SpringMVCは、この 「servlet-name」-servlet.xmlというファイルを読み込むようです。

4. index.jspファイルの修正

「src/main/webapps/index.jsp」の内容を、以下の1行にします。

<meta http-equiv="refresh" content="0; url=/SpringWeb2/action/login.html">

5. login.jspファイルの追加

「src/main/webapps/WEB-INF」の下に、jspというフォルダを新規に作成します。
次に、作成した jspフォルダに、「login.jsp」をいうファイルを新規作成します

内容は、「account」と「password」の文字列を送信できれば良いので、
見栄えを気にせず、以下のようにします。

6. menu.jspファイルの追加

「src/main/webapps/WEB-INF/jsp」の下に、「menu.jsp」をいうファイルを新規作成します
このファイルは、ログインに成功した時に遷移する画面とします。
簡単ですが、下記のように記述します。

7.LoginInterface.javaファイルの追加

最初に Javaのソースフォルダを追加します。
EclipseのPackage ExplorerでSpringWeb2プロジェクトを右クリックして、
「New」→「Source Folder」を選択し、「src/main/java」フォルダを作成します。

次に、「src/main/java」で右クリックし、「New」→「Package」を選択し、
「com.jxpath.springweb.logic.define」パッケージを追加します。

作成した「com.jxpath.springweb.logic.define」パッケージで、右クリックして
「New」→「Interface」を選択し、LoginInterfaceというjavaファイルを作成します。
ファイルの内容は、下記のようにします。

8.LoginLogicDummy.javaファイルの追加

次に、ログイン判定を行うスタブクラスを作成します。
このスタブクラスでは、account=jxpath, password=com の場合のみ、trueを返します。

「src/main/java」で右クリックし、「New」→「Package」を選択し、
「com.jxpath.springweb.logic」パッケージを追加します。
作成したパッケージで、「New」→「Class」を選択し、下図のように、Name と Intefacesを
設定して、「Finish」ボタンを押します。

内容は、引き数の (aName, aPassword) の組み合わせが( jxpath, com ) の場合のみ、
true を返せば良いので、下記のようにします。

9.LoginCtrl.javaファイルの追加

最後に、HTMLからログイン要求を受け付けて、合否によって飛び先ページを変更する
コントローラクラスを作成します。
ログインに成功すれば menu.jspに進み、失敗すれば、login.jspに戻ります。

「src/main/java」で右クリックし、「New」→「Package」を選択し、
「com.jxpath.springweb.login」パッケージを追加します。
作成したパッケージで、「New」→「Class」を選択し、下図のように、Name と SuperClassを
設定して、「Finish」ボタンを押します。

内容は、HTMLフォームから受けとった( account, password )を、mLoginLogicクラスに
合否を判定してもらい、this.getSuccessView() または this.getFormView()で生成する
ModelAndViewのインスタンスを返します。
ModelAndViewって何?という質問には、来週(7月第2週)のSpringMVCで回答します。

できたー

お疲れ様でした。これで、骨組みはできました。
早速、Eclispe上から、「mvn package」を実行してください。

次に、Eclipse上からTomcatを立ち上げて、「http://localhost:8080/SpringWeb2/」を 開いてください。
下の図のように、account と password を入力する画面が表示されます。

では、やっとSpringの機能を説明することができます。
左のメニューの DIコンテナの記事をご覧ください。