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

ParameterAware

Mayaa Webwork2でParameterAwareが上手く動きません。

訂正
Mayaa Webwork2で動かないのではなく、webwork2のParameterAwareとValidationInterceptorが上手く動いていないだけでした。これに関しては、Interceptorを使わずに内部で処理することで回避できます。

・入力html
<input type="text" name="hoge">

・表示html
<span id="test">ダミー</span>

・mayaa
<m:write id="test" value="${parameters.hoge}"/> 

では取れません。

<m:write id="test" value="${parameters.hoge[0]}"/> 

で取れます。
でも、webwork標準のtaglibだと以下の書き方で取れます。

<ww:property value="parameters.hoge"/>

できれば同じように取りたい。


問題はこれだけかと思いきや、validationInterceptorが上手く効いてないかもしれない。
かもしれないというのは、JSPでまだ試してないので。
書いてから思ったんだけど、validateionInterceptorとMayaa Webwork2は関係ないなぁ。
validateの部分は受取った値にたいして処理してるだけだし、その間にMayaa Webworkは介入してないし。
じゃぁ何が悪いんだろう・・・。
XXXAction-method-validation.xmlを用意してやってるんだけど、ModelDrivenからParameterAwareに変えたら上手く動かなくなっちゃった。


ValidatorSupport#getFieldValueがParameterAwareに対応してないかも。
PropertyTagとは違う書き方になってる。

・PropertyTag
stack.findValue(name,String.class);

・ValidatorSupport
stack.findvalue(name);


追記
調べてみたらWebworkのフォーラムでもいろいろ議論されてた。
自分でFieldValidatorSupportを拡張したものを作るとかありました。
今回は一部のアクションだけなのでアクション内で処理することにします。