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

dennis hoersch commented on MYFACES-3659:
-----------------------------------------

Thank you so far.
Yes I worked with the Version 2.1.6.

Maybe the Javadoc on 
FaceletCompositionContext.markRelocatableResourceForDeletion() could be a bit 
changed because it is based on a previous idea and used additionally not 
'instead'.

I tried to create a junit test case and attached it. It fails if I remove the 
line with 
'myFaceletContext.finalizeRelocatableResourcesForDeletion((UIViewRoot) 
parent);'.

LU>> No special reason, both ways work in this part, I just copied the code 
from finalizeForDeletion(UIComponent). 
Ah, OK. I was just wondering sometimes while debugging if there might be a 
special reason.
                
> Conditional include of scripts and stylesheets 
> -----------------------------------------------
>
>                 Key: MYFACES-3659
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3659
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.6
>         Environment: MyFaces 2.1.6, Tomahawk20 1.1.11
>            Reporter: dennis hoersch
>         Attachments: MYFACES-3659_2.diff, MYFACES-3659_2.zip, 
> MYFACES-3659_3.diff, MYFACES-3659-3.patch, MYFACES-3659-4.patch, 
> patch-MYFACES-3659.diff, patch-MYFACES-3659.zip, test-MYFACES-3659.zip
>
>
> I am inserting a script 'X.js' dependent on a condition (c:if). The default 
> case is to include it. If I change the underlying value within an action so 
> that the condition evaluates to false, the script is still included. Also 
> after any other following action.
> Using F5 in Firefox the page is now rendered without the script.
> The script 'X.js' was added to the view root and is never 'forgot' or 
> removed. It is the same if the script is included in a composite component. 
> In that case I even observed that the order of the scripts changes and the 
> script 'X.js' is included before other basic scripts like jQuery on which 
> 'X.js' depends.
> ----
> <h:form id="form">
>   <c:set var="sessionScope" 
> value="#{facesContext.externalContext.sessionMap}" />
>     
>   <h:commandButton value="deactivate"
>       rendered="#{empty sessionScope.__isActive_ or 
> sessionScope.__isActive_}">
>       <f:setPropertyActionListener target="#{sessionScope.__isActive_}" 
> value="#{false}" />
>   </h:commandButton>
>   <h:commandButton value="activate"
>       rendered="#{not empty sessionScope.__isActive_ and not 
> sessionScope.__isActive_}">
>       <f:setPropertyActionListener target="#{sessionScope.__isActive_}" 
> value="#{true}" />
>   </h:commandButton>
>     
>   <h:commandButton value="do nothing" />
>     
>   <h:outputScript library="js" name="jQuery.js" target="body" />
>     
>   <c:if test="#{empty sessionScope.__isActive_ or sessionScope.__isActive_}">
>     BLA
>     <h:outputScript library="js" name="X.js" target="body" />
>     </c:if>      
> </h:form>
> ----
> Am I doing something wrong? Is there another (or better) way to include 
> scripts conditionally?
> (
> If I change 'HtmlOutputScriptHandler' to set the script transient, it works 
> in the first glance, but I don't know the impact...
> @Override
> public void onComponentPopulated(FaceletContext ctx, UIComponent c, 
> UIComponent parent) {
>     super.onComponentPopulated(ctx, c, parent);
>     c.setTransient(true);
> }
> )

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to