[Seasar-user:3895] [S2JSF(Teeda)] 自作のvalidatorを組み込むとNullPointerException
O.K.U.
[E-MAIL ADDRESS DELETED]
2006年 6月 19日 (月) 16:33:34 JST
O.K.U.@Teeda版への乗り換え検討中です。お世話になります。
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 メーリングリストの案内