[Seasar-user:3896] Re: [S2JSF(Teeda)] 自作のvalidatorを組み込むとNullPointerException

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2006年 6月 19日 (月) 16:46:40 JST


shotです。

06/06/19 に O.K.U.<[E-MAIL ADDRESS DELETED]> さんは書きました:
> O.K.U.@Teeda版への乗り換え検討中です。お世話になります。

いつもご指摘ありがとうございます^^
下記の件みてみます。
しばしお待ちください。

ちなみにredirectの件は、Teedaのバグでした。
既に修正済みです。
次のバージョン(beta4)で解消されます。


CommandLinkでJavaScriptがオフの場合の挙動の件は
現在MyFacesに近いような形で実装で実装中です。
(ただMyFacesのこの部分のアーキテクチャはSession依存なので、
ちょっと内部構成は検討が必要です。)


> S2JSF 1.1.0 Beta1 (Teeda版)で、自作のvalidatorを組み込むと
> org.seasar.jsf.util.UIComponentUtil.callValidators()で
> NullPointerException が発生します。
>
> S2JSF Example 1.1.0 Beta1 を使った再現手順
>
> (1)
> 以下のソースを追加、コンパイルしてできたTestValidator.classを
> WEB-INF/classes/examples/jsf/validator (ディレクトリを作成)
> に配置
>
> − src/main/java/examples/jsf/validator/TestValidator.java] −−−−−−−−−−
>
> package examples.jsf.validator;
>
> import javax.faces.component.UIComponent;
> import javax.faces.context.FacesContext;
> import javax.faces.validator.Validator;
>
> public class TestValidator implements Validator {
>
>     public void validate(FacesContext context,
>                          UIComponent component,
>                          Object value){
>         ;
>     }
> }
> −−−−−−−−−−
>
> (2)
> WEB-INF/classes/examples/jsf/dicon/allvalidator.dicon に
> <component name="testValidator" class="examples.jsf.validator.TestValidator" />
> を追加
>
> (3)
> validator/validator.html で
> m:binding="#{ageValidator} を m:binding="#{testValidator}" に変更
>
> (4)
> デプロイして実行。
> Age:の入力欄にaaaと入力し、submitボタンを押すと MyFaces版では
> 特に何もおきません(正常)が、同様のことを s2-jsf-1.1.0-beta-1 で
> 行なうと以下のようなNullPointerExceptionが発生してしまいます。
> −−−−−−−−−−
> java.lang.NullPointerException
>         org.seasar.jsf.util.UIComponentUtil.callValidators(UIComponentUtil.java:66)
>         org.seasar.jsf.component.html.S2HtmlInputText.validate(S2HtmlInputText.java:73)
>         javax.faces.component.UIInput.executeValidate(UIInput.java:406)
>         javax.faces.component.UIInput.processValidators(UIInput.java:187)
>         javax.faces.component.ComponentUtils_.processAppropriatePhaseAction(ComponentUtils_.java:49)
>         javax.faces.component.UIForm.processAppropriateAction(UIForm.java:84)
>         javax.faces.component.UIForm.processValidators(UIForm.java:72)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:429)
>         javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:103)
>         org.seasar.jsf.component.S2UIViewRoot.processValidators(S2UIViewRoot.java:68)
>         org.seasar.jsf.lifecycle.LifecycleImpl.processValidations(LifecycleImpl.java:149)
>         org.seasar.jsf.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:89)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:76)
>         org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
>         org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
>         org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
> −−−−−−−−−−
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



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