myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (Commented) (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3462) REGRESSION - Detect when to wpdate head or body target when content has been updated dynamically
Date Sun, 12 Feb 2012 22:14:59 GMT

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

Leonardo Uribe commented on MYFACES-3462:
-----------------------------------------

The problem is caused because javax.faces.IS_BUILDING_INITIAL_STATE was used as a marker to
detect if a resource was put on "head" and if that so, trigger a head update. But in MYFACES-3451,
the activation conditions for that flag were changed, with the intention to get a significant
reduction of the state size.

The solution is just update the condition, so javax.faces.IS_BUILDING_INITIAL_STATE is set
and is refreshing transient build, activate the flag.
                
> REGRESSION - Detect when to wpdate head or body target when content has been updated
dynamically
> ------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3462
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3462
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: JSR-314
>    Affects Versions: 2.0.12, 2.1.6
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>
> Related to topic sent on jsr344-experts list:
> [jsr344-experts] Facelet page with dynamic content and update ajax content does not work
as user expects
> Now take a look at this example:
> include.xhtml
> <h:commandLink ...>
>    <f:ajax render="content"/>
> </h:commandLink>
> ...
> <f:subview id="content">
> <ui:include src="#{testManagedBean.page}"/>
> </f:subview>
> page1.xhtml
> <ui:composition
>     xmlns:h="http://java.sun.com/jsf/html"
>     xmlns:f="http://java.sun.com/jsf/core"
>     xmlns:ui="http://java.sun.com/jsf/facelets">
> <h:outputText id="component1" value="Page 1"/>
> <!-- ... more components ... -->
> </ui:composition>
> page2.xhtml
> <ui:composition
>     xmlns:h="http://java.sun.com/jsf/html"
>     xmlns:f="http://java.sun.com/jsf/core"
>     xmlns:ui="http://java.sun.com/jsf/facelets">
> <h:outputStylesheet ... />
> <h:outputText id="component2" value="Page 2"/>
> <!-- ... more components ... -->
> </ui:composition>
> Here the problem is if the dynamic content changes and add a resource under
> "head" target (h:outputStylesheet does that), shouldn't be added a section
> on the ajax payload to update the <head> section? In theory yes, because
> this breaks encapsulation principle. If the user says render all inside
> content if the <head> section changes it is responsability of the framework
> (in this case PartialViewContext) to detect that an send the correct
> payload, right?. Here we have two options:
> a. Keep track of the resources rendered and save that on the state, then use
> that information to check if the head should be rendered. 
> b. Use PostAddToViewEvent to check when a change on the component tree has 
> triggered a change on the head.
> Option b. save some bytes on the state but it could cause render <head> 
> section more than necessary (for example a dynamic change but the head
> has already rendered the resource, so it is not necessary). Option a.
> impose that you need a way to check if the <head> was changed, and
> require changes on the spec. 
> I'll solve this problem adding a web config param:
> org.apache.myfaces.STRICT_JSF_2_REFRESH_TARGET_AJAX
>  on MyFaces and doing some
> changes on the algorithm, adding a flag to indicate if a view is being built
> by first time. 

--
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

        

Mime
View raw message