3-3 ログイン画面を作ろう

この節では、入力フォームに入力されたデータをサーバー上でどのように扱うのかということを、SimpleFormControllerクラスを用いて説明されています。SpringMVCのコントローラとしてSimpleFormControllerを使うと、フォームに入力された値からサーバーのオブジェクトを生成する手間が省けます。これをやるためには、フォームに入力された値を格納するデータクラス(コマンド)と、外部ファイルに記載するコントローラの定義、ビュー上におけるフォームの各要素にデータクラスのプロパティを指定してやることが必要になります。
外部ファイルにコントローラを定義する際には、

  <!-- Controller -->
  <bean id="loginFormController" class="controller.LoginFormController">
    <property name="sessionForm"><value>false</value></property>
    <property name="commandName"><value>user</value></property>
    <property name="commandClass"><value>logic.User</value></property>
    <property name="validator"><ref bean="loginValidator"/></property>
    <property name="formView"><value>login</value></property>
    <property name="successView"><value>loginSuccess</value></property>
    <property name="shopService"><ref bean="shopService" /></property>
  </bean>

のように、SimpleFormControllerを利用するために必要なプロパティを指定してやります。この中に、コマンドとして利用するデータのクラスや、GETリクエスト・varidatorチェックにひっかかった時に使うビュー、POSTリクエストの後に問題がなければ表示するビューなどが定義されています。varidatorプロパティを利用して、コントローラにリクエストが渡される前に、その内容をチェックすることができるという点が面白いと思いました。
ビューのあるテキストボックスが、コマンドのどのプロパティに該当するのか、といった定義は、JSPの中でタグを利用しながら行ないます。コマンドクラスのクラス名や変数名をpathに指定してやり、それをstatusとしてタグの中で使っていけば、自動的にHTMLが生成され、フォームが送信された後は、そのコマンドクラスのインスタンスにフォームの値が代入されます。
この節では、ログイン画面と入力データの存在可否を知らせる画面しか出てきませんでしたが、もっと処理フローが複雑になった場合に利用するSpringのコントローラクラスには、どのようなものがあるのだろうか、という期待を持ちながら、次の節に進んでいきたいと思います。