[jboss-user] [JBoss Seam] - Seam validation problem with facelets source tag
czhao07
do-not-reply at jboss.com
Sat May 5 08:48:08 EDT 2007
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
More information about the jboss-user
mailing list