[Seasar-user:18023] Re: [SAStrutsAOS] SAStruts側のvalidationが動作しない事例報告
newta
[E-MAIL ADDRESS DELETED]
2009年 7月 18日 (土) 03:01:16 JST
newtaです。
返信遅くなりました。
言われたとおり、validationにform定義が1つも無いときにエラーとなっていました。
修正しましたのでこちらからダウンロードしてください。
http://sourceforge.jp/projects/javasth/document/sa-struts-aos.jar/ja/4/sa-struts-aos.jar
今、試しに稼動中のプロジェクトでaosを試してやってみてるのですが、
Tilesに対応していなかったので、対応してみました。
テストプロジェクト以外のちゃんとしたプロジェクトで試したのは初めてなのですが
一通り動いていそうです。
また、何か問題がありましたらよろしくお願いします。
2009/07/14 11:42 に <[E-MAIL ADDRESS DELETED]> さんは書きました:
>
> 岡内です。お世話になっております。
>
> SAStrutsAOSを使用して、既存StrutsシステムにSAStruts画面を追加していますが、
> SAStruts側のvalidationの箇所で下記のような現象に遭遇したので報告いたしま
> す。
>
> ●バージョン
> このバージョンを使用しました。
> http://d.hatena.ne.jp/newta/20090610/1244647389
>
> ●現象
> SAStrutsのvalidationを使う(厳密には、ActionのExecuteアノテーションに
> input="〜"を設定する)と、
> 該当メソッドアクセス時にNullPointerExceptionが発生します。
>
> java.lang.NullPointerException
>
> org.apache.commons.validator.ValidatorResources.getForm(ValidatorResources.java:433)
>
>
> org.seasar.struts.validator.S2AOSValidatorResources.getForm(S2AOSValidatorResources.java:121)
>
>
> org.apache.commons.validator.Validator.validate(Validator.java:350)
>
> org.seasar.struts.action.ActionWrapper.validateUsingValidator(ActionWrapper.java:171)
>
>
> org.seasar.struts.action.ActionWrapper.execute(ActionWrapper.java:108)
>
> org.seasar.struts.action.ActionWrapper.execute(ActionWrapper.java:86)
>
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
>
>
> org.seasar.struts.action.S2RequestProcessor.process(S2RequestProcessor.java:125)
>
>
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
>
>
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:75)
>
>
> org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
>
>
> org.seasar.struts.filter.RoutingFilter.forward(RoutingFilter.java:219)
>
> org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:90)
>
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
>
>
> org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
>
>
> org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
>
> ●調べた限りでの再現性
>
> 常に発生するわけではなく、下記のような場合に発生するようです。
>
> 1)struts-config.xmlのplug-inタグにvalidation.xmlが指定されていない場合
>
> <plug-in className="org.seasar.struts.validator.S2AOSValidatorPlugIn"
>>
> <set-property
> property="pathnames"
> value="/WEB-INF/validator-rules.xml"/>
> </plug-in>
>
> 2)validation.xmlが指定されていても、form定義がひとつもない場合
>
> <form-validation>
> <global/>
> </form-validation>
>
> ●対策
>
> struts-config.xmlのplug-inにvalidation.xmlも含まれていて
>
> <plug-in className="org.seasar.struts.validator.S2AOSValidatorPlugIn"
>>
> <set-property
> property="pathnames"
> value=
> "/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
> </plug-in>
>
>
> validation.xmlにひとつ以上の(ダミー可)form定義がある。
>
> <form-validation>
> <global/>
> <formset>
> <form name="/Sample">
> <field property="hoge" depends="required">
> <arg0 key="labels.hoge"/>
> </field>
> </form>
> </formset>
> </form-validation>
>
> もし間違っていたらごめんなさい。m(__)m
>
>
> 以上
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内