myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Robinson" <>
Subject Re: How to PPR-enable a facelet component?
Date Sun, 25 May 2008 13:17:42 GMT
Just a quick reply from my iPod:
1) don't use a4j if you don't have to. Mixing external Ajax code with
Trinidad is not recommended.
2) Use tr:panelGroupLayout to get PPR to work with as little HTML
possible (although it uses a SPAN instead of a DIV for the default
layout which sucks.

You need to have some HTML to be able to PPR as PPR is just that --
partial page refreshing/ replacing. You can acually PPR any component
as long as you know the client ID. It does not work on plain HTML tags
though (verbatim or in-line facelets). If you don't want to use
tr:panelGroupLayout the I would suggest making a custom component that
renders the root HTML tag that you desire.

As for Trinidad not being more declarative, I keep losing this battle.
There are a few people who would prefer to not support 3rd party
components at all and prefer that people use 100% trinidad. Others
don't want new PPR components, they feel that only renderkit oriented
components belong in Trinidad. I share neither of these views.
Trinidad is not just a renderkit, it is a full framework IMO. If you
agree with that as well, users need to ask for this functionality as
only popular opinion can win this debate.


On 5/24/08, Stephen Friedrich <> wrote:
> I really don't meant my statement to be personal at all.
> It was more a general comment on Trinidad.
> I apologize if it sounded differently.
> I hesitate a lot to bring A4J into my app, because my experience is that
> each new technology in the stack is good for a couple of days of
> configuration
> and debugging nightmare.
> There was an article about how to enable PPR for custom (non-JSF)
> components.
> I'll try and do that with a component that simply renders a <div>.
> Thanks for your comments.
> Scott O'Bryan wrote:
>> No need to get personal, I'm just telling you about what philosophy
>> Trinidad has origionally taken.  The idea does have some technical
>> merit.  It is very difficult to optimize/ppr content you don't own.
>> ESPECIALLY if such content is JSF content.  Trinidad didn't want to have
>> to tackles the issues involved technically.
>> It's not arrogance, simply that Trinidad wasn't written to be an AJAX
>> enablement engine as much as a rich-type renderkit which extends JSF to
>> do a complete GUI.
>> I'm also not saying that your ideas don't have merit, and your certainly
>> welcome to argue them on the community forums here, but try to be more
>> constructive.
>> My suggestion about A4J was just that.  A4J does things on the PPR front
>> differently then Trinidad does.  It does this specifically because it IS
>> an AJAX enablement engine, but not as much a application development
>> renderkit like Trinidad is.  Each architecture has merit and I'm not
>> sure there is a one-size-fits-all scenario to this issue.
>> BTW- putting content inside of a panel that has a partial trigger will
>> get the behavior you want in facelets I believe.  I haven't tried it
>> myself, and it doesn't work with JSP's so long as you rely on JSTL, but
>> I think facelets might actually fix that issue.
>> Scott
>> Stephen Friedrich wrote:
>>> Too bad - and a strange (or arrogant) philosophy.
>>> If there aren't any technical issues I haven't yet understood, I think
>>> such a feature/tag should be included.
>>> Why be so inflexible and malignant considering other technologies?
>>> Trinidad: All your html are belong to us?
>>> That might perhaps have been an Oracle strategy, but it doesn't suite an
>>> Open Source project that well.
>>> My app does indeed use mostly Trinidad components.
>>> PPR is a great feature and time saver.
>>> I would not want to do without panelFormLayout.
>>> Lighweight dialogs are desperately needed.
>>> There are just a few cases where a couple of lines of html plus
>>> some css saves me from creating custom renderers or jsf components
>>> (like a highly creative process train (think "advertising agency
>>> employee with a faible for photoshop")).
>>> Scott O'Bryan wrote:
>>>> The reason is one of philosophy.  And there has been some debate over
>>>> this on the dev lists.  I think Andrew has something which may be
>>>> thrown into the sandbox..  however..
>>>> Trindiad renderkit works off the assumption that most of your content
>>>> will be trinidad content.  As such, it has PPR built in to each
>>>> component and the famework necessary to support that PPR.  Components
>>>> external to Trinidad are assumed to be able to do their own PPR and
>>>> that is where the philosophy comes in.  Trinidad does not try to PPR
>>>> the world, it only tries to ppr itself so it can better optimize.
>>>> Some renderkits (like A4J) take the opposite approach and basically
>>>> look at adding AJAX functionality to existing non-ppr enabled
>>>> renterkits/content.  Maybe you would be better off using a technology
>>>> like that instead of Trinidad for your application.
>>>> Scott
>>>> Stephen Friedrich wrote:
>>>>> I have some very specific components in my project, made using facelets
>>>>> and containing mostly pure html (with some ui:repeat thrown in).
>>>>> How am I supposed to make such a component the target of PPR?
>>>>> Why isn't there a simple non-rendering trinidad component for that
>>>>> purpose, e.g.
>>>>>    <tr:fragment partialTriggers="region">
>>>>>        ... html ...
>>>>>    </tr:fragment>
>>>>> That component could also have a rendered attribute which is nicer than
>>>>> using <c:if> (and avoids confusing facelets).
>>>>> Is there any other component that I could misuse for that?

View raw message