SimpleFormControllerで指定可能なプロパティ

SimpleFormControllerで指定可能なプロパティを調べてみる。

まずは、階層関係

java.lang.Object
  + org.springframework.context.support.ApplicationObjectSupport
      + org.springframework.web.context.support.WebApplicationObjectSupport
          + org.springframework.web.servlet.support.WebContentGenerator
              + org.springframework.web.servlet.mvc.AbstractController
                  + org.springframework.web.servlet.mvc.BaseCommandController
                      + org.springframework.web.servlet.mvc.AbstractFormController
                          + org.springframework.web.servlet.mvc.SimpleFormController

org.springframework.web.servlet.mvc.AbstractControllerから、コントローラで設定可能なプロパティがでてくる。
このクラスで指定可能なプロパティは、

  • supportedMethods
  • requireSession
  • cacheSeconds
  • synchronizeOnSession

サブクラスのorg.springframework.web.servlet.mvc.BaseCommandControllerでは、

  • commandName
  • commandClass
  • validators
  • validator
  • validateOnBinding

さらに下がってorg.springframework.web.servlet.mvc.AbstractFormControllerでは、

  • bindOnNewForm
  • sessionForm

そして最後のSimpleFormControllerでは、

  • formView
  • successView

これらをまとめるとこんな感じでしょうか。

プロパティ名 デフォルト値 詳細 指定可能なクラス
supportedMethods GET,POST サポートするHTTPメソッドをカンマ区切り(CSV形式)で指定 AbstractController
requireSession false リクエスト処理にセッションが必要かどうか AbstractController
cacheSeconds -1 キャッシュの有効期間を秒単位で指定(0指定時:no-cache -1指定時:キャッシュヘッダなし AbstractController
synchronizeOnSession false 同一セッションでのリクエストをシリアライズするか AbstractController
commandName command コマンド名 BaseCommandController
commandClass null コマンドオブジェクトとして利用するクラス名 BaseCommandController
validators null バリデータを配列で指定 BaseCommandController
validator null バリデータ名 BaseCommandController
validateOnBinding true リクエストパラメータをコマンドオブジェクトにバインドした後にバリデータを実行するか BaseCommandController
bindOnNewForm false 新規フォーム作成時(表示時)もリクエストパラメータを保存したままにするか AbstractFormController
sessionForm false フォームの値をセッション内で保存するか AbstractFormController
formView null フォーム入力画面 or validationチェック失敗時に表示する画面 SimpleFormController
successView null formViewで指定した画面でのsubmitが成功した場合に表示する画面 SimpleFormController

いまいちわかっていないプロパティもあるけど、その辺はいじり倒しながら確認するか。