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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to