[ 
https://issues.jboss.org/browse/RF-12831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Leathem reassigned RF-12831:
----------------------------------

    Assignee: Pavol Pitonak


Would you please verify this with a framework test?
                
> <rich:validator/> performs ajax validation without updating underlying model 
> field
> ----------------------------------------------------------------------------------
>
>                 Key: RF-12831
>                 URL: https://issues.jboss.org/browse/RF-12831
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.3.0.Final
>         Environment: JBoss eap 6.0.0, Win 7
>            Reporter: Kamil Roman
>            Assignee: Pavol Pitonak
>            Priority: Minor
>
> Not sure if it's a bug or a feature, but field annotated with 
> {code}<rich:validator/>{code} with a validation method set with 
> {code}validator{code} attribute gets validated without updating the 
> underlying model field. My code is something like this:
> {code:title=Model.java}
> public class Model {
> //...
> public Date getValidFrom() {/*...*/}
> public Date getValidTo() {/*...*/}
> }
> {code}
> {code:title=ModelValidator.java}
> public class ModelValidator{
> private Model model;
> public boolean isValidToAfterValidFrom() {
>       return model.getValidTo().after(model.getValidFrom());          
>       }
> }
> {code}
> {code:title=model_form.xml}
> <c:set var="model" value="#{ModelBean.model}"/>
> <h:outputLabel value="#{labels.getLabel('valid_from')}"       for="validFrom" 
> /> 
> <rich:calendar        value="#{model.validFrom}" id="validFrom" >
>       <rich:validator/>
> </rich:calendar>
> <rich:message for="validFrom"/>       
>                                                                       
> <h:outputLabel value="#{labels.getLabel('valid_to')}" for="validTo" /> 
> <rich:calendar value="#{model.validTo}" id="validTo" 
> validator="#{modelBean.validateValidTo}">
>       <rich:validator event="inputblur"/>
> </rich:calendar>
> <rich:message for="validTo"/>
> {code}
> {code:title=ModelBean.java}
> public class ModelBean {
> public Model getModel() {/*..*/}
> private ModelValidator validator;
> //...
> public validateValidTo(FacesContext context, UIComponent toValidate, Object 
> value) {
>       if(!validator.isValidToAfterValidFrom()) {
>               FacesMessage message = new 
> FacesMessage(FacesMessage.SEVERITY_ERROR, 
> labelBean.getLabel("valid.to.not.after.valid.from.error"), null);
>               throw new ValidatorException(message);
>       }
> }
> {code}
> The getModel() method returns the same Model instance as is used by the 
> ModelValidator in ModelBean.
> Now, the testcase is:
> 1. User selects validTo earlier than ValidFrom (on a valid Model instance)
> 2. Validation passes as the underlying model value is not updated (validator 
> refers to the same Model instance as ModelBean)
> 3. User submits the form.
> 4. System displays error message as server-side validation on submit is 
> performed after applying request values.
> 5. User corrects the value in validTo field.
> 6. System still displays error message as validation fails, because the new 
> value is not applied to the model (model holds the invalid value applied 
> during failed submit).
> If this is not a bug, but a feature, it would be great if you included this 
> behaviour in the docs!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to