読者です 読者をやめる 読者になる 読者になる

StrutsのAction、ActionForm周りについて

  • Request#populateメソッドは、リクエストデータをアクションフォームに設定する。
  • DynaActionFormのgetterはget("hoge")となる。
    • "hoge"はDynaActionFormの属性名
  • terasolunaでActionFormを実装するときは原則として「ValidatorActionFormEx」を継承する。
  • クラスを作らないでstruts-configの設定だけで作れるのが「DynaValidatorActionFormEx」という。
  • 自作Action内のexecute(return:ActionForward)でrequest#getParameter(request#getXXXX)した値をrequest#setAttributeして詰め替えておくことで、フォーワード先(たいていはJSP)にユーザからの入力値を伝播できる。
  • struts-configでprefixをつけたときにアクションフォーム生成エラーが出る件
    • http://struts.wasureppoi.com/env/01_action.html
    • 指定した値と、リクエストパラメータ名が前方一致する場合に、アクションフォームにセットされる。 name属性が指定してある場合に有効。
    • TERASOLUNA機能説明書(P116)
      • Struts 設定ファイル(struts-config.xml)でprefix を設定している場合は、その設定値が除去された後のパラメータ名に対してチェックを行う。
    • web.xmlのSecurityValidateFilterでprohibitedParameterNamesにプレフィックス付きのリストを付加し忘れていたのが原因。