[
https://issues.apache.org/jira/browse/TOBAGO-2287?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bernd Bohmann resolved TOBAGO-2287.
-----------------------------------
Resolution: Fixed
> Avoid error msg when using cc:clientBehavior with target attribute and f:ajax
> and @this
> ---------------------------------------------------------------------------------------
>
> Key: TOBAGO-2287
> URL: https://issues.apache.org/jira/browse/TOBAGO-2287
> Project: MyFaces Tobago
> Issue Type: Bug
> Components: Core
> Affects Versions: 6.2.0
> Reporter: Bernd Bohmann
> Assignee: Bernd Bohmann
> Priority: Major
> Fix For: 5.11.0, 6.3.0
>
>
> Error:
> {code:java}
> o.a.myfaces.tobago.util.ComponentUtils : No component found for
> id='@this:selected-values', search base component is
> 'page:filter-roles:selected-values' {code}
> in composite component:
> {code:java}
> <cc:clientBehavior name="onSelectFilterCheckbox" event="change"
> targets="selected-values"/> {code}
>
> Code in org.apache.myfaces.view.facelets.tag.faces.core.AjaxHandler there is
> something like this
> {code:java}
> // execute is required
> Collection<String> execute = ajaxBehavior.getExecute();
> if (execute.isEmpty() || execute.contains("@this"))
> {
> Collection<String> newExecute = new ArrayList<>(execute);
> newExecute.remove("@this");
> for (String target : targetsArray)
> {
> newExecute.add("@this" + separatorChar + target);
> }
> ajaxBehavior.setExecute(newExecute);
> }
> // render is optional
> Collection<String> render = ajaxBehavior.getRender();
> if (render.contains("@this"))
> {
> Collection<String> newRender = new ArrayList<>(render);
> newRender.remove("@this");
> for (String target : targetsArray)
> {
> newRender.add("@this" + separatorChar + target);
> }
> ajaxBehavior.setRender(newRender);
> } {code}
>
>
> We need to handle _@this:<id>_ in ComponentUtils. Still I think the myfaces
> core code is wrong the '@this' should be enough
--
This message was sent by Atlassian Jira
(v8.20.10#820010)