Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JBoss User Help »

[jboss-user] [JBoss Seam] - Seam validation problem with facelets
 source tag

scott.stark@jboss.org

2007-05-05


Here is what I am trying to do:

1. Create facelets source tag:

In taglib:


|  <tag>
|    <tag-name>address</tag-name>
|    <source>xhtml/address.xhtml</source>
|  </tag>
|

In address.xhtml:

| <ui:composition ...>
|           ...
|    <s:decorate>
|      <h:inputText
|        value="#{address.street}"
|        id="street"
|      </h:inputText>
|    </s:decorate>
|           ...
| </ui:composition>
|

2. Now in my facelets that uses the tag:


|
|   ...
|   <s:validateAll>
|       ...
|       <v:address address="mybean.billingAddress"/>
|       ...
|   </s:valiateAll>
|   ...
|
|

The facelets loads fine with the address source tag, and when I enter invalid data in fields from address.xhtml, submit the form and I get the proper validation error messages, so far so good. But if I enter the valid data and submit form, I got the following stack trace:



| Caused by: java.lang.NullPointerException
|      at org.jboss.seam.core.Expressions.getValidator(Expressions.java:198)
|      at org.jboss.seam.core.Expressions.validate(Expressions.java:182)
|      at org.jboss.seam.ui.ModelValidator.validate(ModelValidator.java:25)
|      at javax.faces.component._ComponentUtils.callValidators (_ComponentUtils.java:157)
|      at javax.faces.component.UIInput.validateValue (UIInput.java:312)
|      at javax.faces.component.UIInput.validate (UIInput.java:353)
|      at javax.faces.component.UIInput.processValidators (UIInput.java:183)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIForm.processValidators (UIForm.java:70)
|      at javax.faces.component.UIComponentBase.processValidators (UIComponentBase.java:624)
|      at javax.faces.component.UIViewRoot.processValidators (UIViewRoot.java:146)
|
|

If I change the address.xhtml to use #{mybean.billingAddress} directly like this:


| <ui:composition ...>
|           ...
|    <s:decorate>
|      <h:inputText
|        value="#{mybean.billingAddress.street}"
|        id="street"
|      </h:inputText>
|    </s:decorate>
|           ...
| </ui:composition>
|

Then the problem goes away, although this works, but it defeats the purpose of reusing the tag in several other places.

Any idea?

Thanks.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043449#4043449

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043449
_______________________________________________
jboss-user mailing list
jboss-user@(protected)
https://lists.jboss.org/mailman/listinfo/jboss-user
©2008 junlu.com - Jax Systems, LLC, U.S.A.