myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Werner Punz <>
Subject Re: [core] why f:ajax render="@all" don't update <link> tags?
Date Wed, 12 Oct 2011 23:00:52 GMT
It actually is not a bug but a huge spec hole.
The spec is rather open what happens, it just says,
body and head will be replaced. Now, the head is not replacable you just 
can simulate it.

What happens to onload handlers is left entirely open.
The problem i have with divergence to mojarra is, that we would 
deliberately break component sets which rely on a certain behavior in 
the ajax case for initialisation and on onload handlers for normal page 
refresh initialisation.

This should and can only be done on spec level I think, or in a combined 
effort on both impls to change the behavior.


Am 10/12/11 11:50 PM, schrieb Mike Kienenberger:
>   if it doesn't break the spec, +1 to enable it by default and not have
> a config switch.
> I never really understood why we are so pedantic about making sure
> we have the same behavior as Mojarra at all times.   We certainly
> shouldn't have as a goal to be bug-compatible with Mojarra.
> On Wed, Oct 12, 2011 at 5:45 PM, Leonardo Uribe<>  wrote:
>> 2011/10/12 Werner Punz<>:
>>> Am 10/12/11 10:17 PM, schrieb Leonardo Uribe:
>>>> Good question. I agree with you about clear this up with the jsf eg
>>>> guys, but I think we should at least fix the problem with the
>>>> stylesheets (and maybe do the script replacement) on the "mean time".
>>>> For the scope of MYFACES-3106, this is the only concern.
>>> I just talked to Ed Burns regarding it, and he told me to leave it out for
>>> now. I probably will enable it via a config switch like we have it for
>>> iframe ppr event queuing different transports etc... And leave it off per
>>> default so that we have it in for users who want to use this stuff.
>>   Really I would like to have it enabled by default. For example look
>> this example:
>> <h:commandButton  ...>
>>     <f:ajax render="content"/>
>> </h:commandButton>
>> <f:subview id="content">
>> ...
>> <c:if test="#{...}">
>>     <my:customComponent ....>
>> </c:if>
>> ...
>> </f:subview>
>> customComponent.xhtml
>> <cc:implementation>
>>    <h:outputStylesheet ..../>
>>    ....
>> </cc:implementation>
>> Without the fix it will fail. Note h:outputStylesheet target all
>> stylesheets by default to<head>. Note that f:ajax render="@all" is
>> not used, so in theory the jsf implementation is responsible to detect
>> if a resource was added to head target and if that so, send an
>> additional<update id="javax.faces.ViewHead">  automatically. Why the
>> developer has to worry about an internal detail of a composite
>> component when using f:ajax?. It just breaks encapsulation principle.
>> The point is in my personal opinion there is no reason why leave it
>> out for now or disable it by default. It is technically feasible,
>> doesn't break the spec, and if Mojarra don't want to implement it
>> doesn't mean we should do the same.
>> Anyway, have a config switch to enable it is better than nothing, and
>> later we can fix it properly, getting rid the need of the switch. So
>> +1 to fix it, and ++1 to fix it and leave it enabled by default.
>> regards,
>> Leonardo Uribe
>>> Werner

View raw message