[Seasar-user:4223] Re: 無設定 S2Struts のバリデーションについて

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2006年 7月 31日 (月) 23:37:52 JST


永島です。

例外の内容からvalidatorの設定が原因かもしれません。
原因を特定するためにcommons-validatorのバージョンと
validatorを定義しているxmlファイル(validator-rules.xml)の
requiredの設定内容を教えてもらえないでしょうか。

私の以下の環境ではエラーは発生しませんでした。
(環境が異なるのであまり参考にはならないかもしれませんが。。。)
<環境>
JDK1.5.0_05
S2Struts-V1.2.5
S2Struts-Tiger-V1.2.5
Tomcat-5.0.28
Struts-1.2.9
commons-validator-1.1.4
validator-rules.xml
=================
      <validator name="required"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateRequired"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
                  msg="errors.required"/>
=================

06/07/31 に Naohiro Kuroda<[E-MAIL ADDRESS DELETED]> さんは書きました:
> お世話になっております。
>
> 現在、Seasar2 を勉強中です。
> バリデーションについて行き詰ってしまい、投稿させて頂きました。
>
> <問題点>
> Tiger Annotation を使って、バリデーションを構築しようとしています。
> ですが、クライアントサイドバリデーション(Java Script)は正常に動きますが、
> サーバサイドバリデーションでは、下記のスタックトレースが出てバリデーションがかかりません。
>
> ====
> 19:34:08,391 ERROR [ValidatorForm] validateRequired
> org.apache.commons.validator.ValidatorException: validateRequired
>         at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:627)
>         at
> org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:557)
>         at org.apache.commons.validator.Field.validateForRule(Field.java:827)
>         at org.apache.commons.validator.Field.validate(Field.java:906)
>         at org.apache.commons.validator.Form.validate(Form.java:174)
>         at org.apache.commons.validator.Validator.validate(Validator.java:367)
>         at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:110)
>         at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:950)
>         at
> org.seasar.struts.processor.S2TilesRequestProcessor.processValidate(S2TilesRequestProcessor.java:117)
>         at
> org.seasar.struts.processor.ValidateProcessorImpl.processValidate(ValidateProcessorImpl.java:76)
>         at
> org.seasar.struts.processor.S2TilesRequestProcessor.processS2Validate(S2TilesRequestProcessor.java:110)
>         at org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:93)
>         at
> org.seasar.struts.processor.S2TilesRequestProcessor.process(S2TilesRequestProcessor.java:61)
>         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:45)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> ====
>
> <FormBean>
> ==== Form ====
> @StrutsActionForm(name = "category1MasterForm")
> public class Category1MasterForm implements Serializable {
>
> 省略
>
> @ValidateOrder(1)
> @Required
> public void setCategory1Id(String category1Id) {
> this.category1Id = category1Id;
> }
> 省略
> ============
>
> <環境>
> JDK 5.0 (JRockit R26)
> S2Struts-V1.2.5
> S2Struts-Tiger-V1.2.5
> JBoss-4.0.4.GA
> Struts-1.2.9
> Windows XP
> eclipse 3.2
> maven2.0.4
>
> 何か情報がございましたら教えて下さい。
> よろしくお願い致します。
>
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> 黒田尚宏 <Naohiro Kuroda>
>
> [E-MAIL ADDRESS DELETED]
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



Seasar-user メーリングリストの案内