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

Leonardo Uribe commented on MYFACES-4068:
-----------------------------------------

This is an interesting issue because it is related to MYFACES-4075 
SearchExpression API, which will be included in JSF 2.3.

There are 4 keywords in JSF 2.2: @all, @form, @none and @this. See JSF 2.2 
section 14.2.2

The problem is the spec is not clear about where and how these keywords must be 
resolved. What is clear is if the developer writes a jsf.ajax.request(...) 
manually, these keywords must be resolved at client side, so the implementation 
do this part correctly.

But in @this case, in a case like we have in h:selectOneRadio the id of the tag 
is not a valid clientId. In fact, @this must be always resolved on the server, 
because in that location we could find the right clientId. 

The solution is just force @this to be resolved in the server instead of the 
client. I have already committed the solution to trunk.

As a side comment, really I'm aware that a full solution to solve MYFACES-3904 
was a painful task, so I waited 9 release to attempt a patch. I hope with this 
catch we solved the problem once for all.

Thanks to Andrey Bichkevsky for confirm the bug and to Bernhard Hablesreiter 
for the follow up.

> Ajax-Listener (PrimeFaces) is not called for some selection-components
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-4068
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4068
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.10, 2.2.11
>         Environment: MyFaces 2.2.10/2.2.11 on Wildfly 9.0.2, PrimeFaces 5.3 
> or 6.0
>            Reporter: Bernhard Hablesreiter
>            Assignee: Leonardo Uribe
>             Fix For: 2.2.12
>
>
> Recently we ran into some problems getting a PrimeFaces "p:ajax"-Component 
> attached to a h:selectManyCheckbox or h:selectOneRadio.
> The problem here is, that the specified "listener"-action is not called.
> We first thought this is a PF issue but in only started with version 2.2.10 
> of MyFaces. In Version 2.2.9 it worked just fine and propably a default 
> jsf-ajax-listener won't work as well (not tested though).
> E.g. we have this non-working code where the listener action is not called 
> (no matter what event-type we specify):
> {code:xml}
> <h:selectManyCheckbox layout="pageDirection" value="#{bean.mySelection}">
>       <f:selectItems value="#{selectionItems}" />
>       <p:ajax process="@this" listener="#{myBean.selectionChanged}" 
> update="@form" global="false" />
> </h:selectManyCheckbox>
> {code}
> We're not sure if this should be fixed on PF side, but as mentioned before, 
> the problem started with the switch to MyFaces 2.2.10.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to