[ 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