[ 
https://issues.apache.org/jira/browse/MYFACES-2528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12828685#action_12828685
 ] 

Michael Kurz commented on MYFACES-2528:
---------------------------------------

Out of curiosity I hacked a quick solution for this one that seems to work as I 
expect it. I simply wrote a tag handler for f:validateBean that checks if the 
attribute is a value expression. In that case this expression is directly set 
on the BeanValidator (new property validationGroupsExpression). BeanValidator 
evaluates this expression if it is set.

Though this works for me with partial and full state saving I don't know if it 
is the way to go. 

> 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
>         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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to