What I think...

2003-09-16

[Java:Struts 1.1:Tips]

TilesFrameworkとActionForm.validate()の組み合わせの場合、validate()メソッド内でActionErrorsを発生させるとJSPの例外が起きる。

これはvalidate()メソッド内のエラーの時にstruts-config.xmlaction要素の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 件のコメント:

コメントを投稿



この投稿へのリンク:

リンクを作成

<< ホーム