You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Bernd Bohmann (JIRA)" <de...@myfaces.apache.org> on 2012/05/09 08:54:11 UTC

[jira] [Created] (MYFACES-3542) The render attribute of AjaxBehavior should support late value expression evaluation

Bernd Bohmann created MYFACES-3542:
--------------------------------------

             Summary: The render attribute of AjaxBehavior should support late value expression evaluation
                 Key: MYFACES-3542
                 URL: https://issues.apache.org/jira/browse/MYFACES-3542
             Project: MyFaces Core
          Issue Type: New Feature
            Reporter: Bernd Bohmann


The render attribute of AjaxBehavior should evaluated during post-back after 'Invoke Application' and before 'Render Response'. It's easly to add this feature with a own PartialViewContext. But there is no call to processPartial with 'Invoke Application'. The Phase 'Render Response' is to late if you are using c:if to skip components from the component tree. See attached example app and pictures.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (MYFACES-3542) The render attribute of AjaxBehavior should support late value expression evaluation

Posted by "Bernd Bohmann (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-3542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13271163#comment-13271163 ] 

Bernd Bohmann edited comment on MYFACES-3542 at 5/9/12 7:00 AM:
----------------------------------------------------------------

In the late-render-expression-4.png it should also update the first test output and render 'test: 2'. Only the region with the c:if inside was updated.
                
      was (Author: bommel):
    In the late-render-expression-4.png it should update the first test output and render 'test: 2' 
                  
> The render attribute of AjaxBehavior should support late value expression evaluation
> ------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3542
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3542
>             Project: MyFaces Core
>          Issue Type: New Feature
>            Reporter: Bernd Bohmann
>         Attachments: late-render-expression-0.png, late-render-expression-1.png, late-render-expression-2.png, late-render-expression-3.png, late-render-expression-4.png, late-render-expression.tgz
>
>
> The render attribute of AjaxBehavior should evaluated during post-back after 'Invoke Application' and before 'Render Response'. It's easly to add this feature with a own PartialViewContext. But there is no call to processPartial with 'Invoke Application'. The Phase 'Render Response' is too late if you are using c:if to skip components from the component tree. See attached example app and pictures.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (MYFACES-3542) The render attribute of AjaxBehavior should support late value expression evaluation

Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-3542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286644#comment-13286644 ] 

Leonardo Uribe commented on MYFACES-3542:
-----------------------------------------

This is an interesting piece of code. I'll describe what I can see, I know you already know this but I'm just trying to follow the steps.

In theory, org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer look for the components, get its clientIds, and finally pass them as params when writing the js code related to the ajax operation.

In this case, the values passed in "javax.faces.partial.render" request parameter, which are the same that were calculated before are just ignored, and the values used for identify the affected client behavior, which are used in the decode process (see org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils.decodeClientBehaviors() ), are used to calculate the affected components, but the good part is if you use c:if to skip components from the component tree, they will not be used. 

There is not any reference in the spec about this. "In theory", include it will not cause any side effects more than solve the problem described here. The only thing that suppose a problem is this propose a different behavior from the one found in the RI (Mojarra), maybe not thought by the EG when the spec was built.

I don't know what to do in this case. A custom <f:ajax> component with this behavior in mind sounds better for me than change the default behavior. Any thoughts?

                
> The render attribute of AjaxBehavior should support late value expression evaluation
> ------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3542
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3542
>             Project: MyFaces Core
>          Issue Type: New Feature
>            Reporter: Bernd Bohmann
>         Attachments: late-render-expression-0.png, late-render-expression-1.png, late-render-expression-2.png, late-render-expression-3.png, late-render-expression-4.png, late-render-expression.tgz
>
>
> The render attribute of AjaxBehavior should evaluated during post-back after 'Invoke Application' and before 'Render Response'. It's easly to add this feature with a own PartialViewContext. But there is no call to processPartial with 'Invoke Application'. The Phase 'Render Response' is too late if you are using c:if to skip components from the component tree. See attached example app and pictures.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira