※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

基本

  • struts-config.xml
    データソース情報、フォーム情報、アクションクラス(+表示される画面)情報などを定義。
  • Formクラス
    フォーム。jspの項目にgetとsetメソッドを準備する。しないと怒られる。
    DynamicActionFormを使えば書かなくていい。あまり使われない意味がわからない。
  • Actionクラス
    org.apache.struts.action.Actionを継承してモデルへの入り口兼出口となるクラス


入力値チェック(Validator)

追加するもの

  • struts-config.xml
    プラグインを追加

  • <plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                              /WEB-INF/validation.xml"/>
    <set-property property="stopOnFirstError" value="true" />
    </plug-in>


  • ActionFormのスーパークラスをValidatorFormに変更
    入力値チェックを入れたい画面のActionFormの継承クラスを変更

  • validation.xmlを編集
    自分で作ってWEB-INFの下に置く。具体的にどんなチェックをしたいかをルールに従って書くだけ。

  • validator-rules.xmlをもらってくる
    だいたいサンプルに入ってるからそのままコピーしてWEB-INFの下に置く。validation.xmlとセットで使うもの(具体的な定義)。

  • エラーメッセージを用意
    メッセージプロパティファイルにエラー関連のメッセージを追加。サンプルのをそのままコピーして自分のに追加すれば大丈夫。

  • struts-config.xml
    アクション要素にValidatorチェックでエラーになったときの先(input属性)、Validatorするか否か(validate)を追加


  • <action path="/login" type="test.action.LoginAction"
    name="loginForm" scope="request" input="/init.do" validate="true"


  • JSPの変更
    サーバサイドで検証して画面にベタでメッセージを表示させていいなら
    ・JSPの出力した個所に<html:errors />と書く
    JavaScriptで検証してポップアップ表示させたいなら


    <html:javascript formName="loginForm" />
      ジャバスクリプトを使う。そいう宣言。
      formNameはstruts-config.xmlのformで書いてる論理名
    <html:form action="/login" onsubmit="returnvalidateLoginForm(this);"
      関数名はvalidate+フォーム名の頭大文字ってとこに注意!!