You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Thomas Andraschko (Jira)" <de...@myfaces.apache.org> on 2020/05/27 10:55:00 UTC

[jira] [Updated] (MYFACES-2528) BeanValidator validation groups are overwritten with PSS

     [ https://issues.apache.org/jira/browse/MYFACES-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Andraschko updated MYFACES-2528:
---------------------------------------
    Resolution: Implemented
        Status: Resolved  (was: Patch Available)

seems to be already applied

> BeanValidator validation groups are overwritten with PSS
> --------------------------------------------------------
>
>                 Key: MYFACES-2528
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2528
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.0-beta
>            Reporter: Michael Kurz
>            Priority: Major
>         Attachments: MYFACES-2528.patch
>
>
> Setting the validation groups of a bean validator like <f:validateBean validationGroups="#{bean.groups}"/> is not always working correctly with PSS. Property bean.groups returns null or the class name of a validation group in my example based on the value of a boolean checkbox:
> <h:selectBooleanCheckbox value="#{bean.prop1}"
>     valueChangeListener="#{bean.prop1Changed}"
>     immediate="true" onclick="this.form.submit()"/>
> <h:inputText value="#{bean.prop2}" rendered="#{bean.prop1}">
>   <f:validateBean validationGroups="#{bean.groups}"/>
> </h:inputText>
> If I check the boolean checkbox the form is submitted and rendered again with the additional input field. The problem now is that the validation groups are set correctly on building the view during the second traversal of the lifecycle before restoring the state. But on restoring the validator this value is overwritten with the old value from the state and my validation group is gone again.
> As the BeanValidator is a PartialStateHolder this can be avoided by only saving and restoring the state if the initial state was not marked.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)