TilesFrameworkと
ActionForm.validate()の組み合わせの場合、validate()メソッド内でActionErrorsを発生させるとJSPの例外が起きる。
これは
validate()メソッド内のエラーの時にstruts-config.xmlのaction要素のinput属性に遷移(Forward)する。例えば…
<action
attribute="sampleForm"
input="/sampleTemplate.jsp"
name="sampleForm"
parameter="action"
path="sample"
type="jp.co.foo.SampleAction">
<forward name="view" path="defaultView" />
<forward name="mainmenu" path="/nextPage.do" />
</action>
の場合、"http://domain:port/context/sampleTemplate.jsp"へフォワードしようとする。しかし、この"sampleTemplate.jsp"がTilesFrameworkのテンプレートとなるJSPの場合、何をinputすればよいのか分からないので例外が出る。
このときは、容赦なく、input属性にTileFrameworkでForward先として指名する値を設定する。例えば…
<action
attribute="sampleForm"
input="defaultView"
name="sampleForm"
parameter="action"
path="sample"
type="jp.co.foo.SampleAction">
<forward name="view" path="defaultView" />
<forward name="mainmenu" path="/nextPage.do" />
</action>
のようにJSPファイルではなくdefinitions-configのXMLファイル内で設定した遷移先で問題ない。
----そういえば、マルチモジュール(複数のstruts-config.xml)等とかも書いとくと良いよね。

0 件のコメント:
コメントを投稿
この投稿へのリンク:
リンクを作成
<< ホーム