I know the world doesn't revolve around JSF, but you are promoting them as JSF components-- :-)

I agree that the RPC approach (Shale/Seam Remoting) is extremely valid, but as a mashup with a UIComponent, there's an obvious disconnect. That's my only point, why should one EL expression work but not the other on the same component? There's no documentation coming out of the blueprints that notes that point (at least that I've seen).

It would be ignorant of me to say that PPR is the only solution offered by JSF (we'll be covering both at J1), but it is much more natural for JSF components/developers with acceptable overhead without dealing with AJAX/transport negotiation within your business code or UI code.

Keep in mind our original presentation title was: AJAX Done Right? (note: the question mark ;-)



Craig McClanahan wrote:
On 4/27/06, [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I think the approaches of the blueprint components are highly
    faulty-- especially with the use of dojo.bind.  You are dealing
    with pure URI negotiation which is orthogonal to the communication
    capabilities of JSF.  Example, the autocomplete example uses Shale
    Remoting via an EL expression-- but doesn't carry context, so
    yeah, you can put #{ foo.suggest} but only if 'foo' is globally
    available which is a huge gotcha for developers and pushing the
    JSF solution back to where we were with JSP 2.0 and JSF 1.1 issues
    again with the disconnect.


Jacob,

It might surprise you to hear *me* say something like this, but the entire AJAX world does *not* revolve around JSF :-0.

Don't get me wrong. The use cases for wanting to partially update the state of the JSF component tree are perfectly valid -- and the stuff you guys are looking at with Avatar is perfectly reasonable (can you *please* settle it down so I can use it in Shale Remoting, for JSF 1.1 as well as JSF 1.2, in addition to what's already there :-). But this is by no means an approach that is universally applicable.

Take the use case you are complaining about here (the auto complete component having to forward the method binding expression to call the end user's method). Yes, that is necessary because this particular implementation does not assume that it has access to the JSF component tree (from which it could acquire the appropriate expression). And, it would be perfectly reasonable to want an auto complete component that *allowed* me to do such a thing.

But to *require* me to do that? Nah ... there are valid tradeoffs between sending extra state information (and avoiding the computational effort required to restore the component tree) and not doing so. That's not for the component author to predict -- an ideal auto complete text field component would support *both* strategies.

To say nothing of a Java back-end for non-JSF based applications, which care not a whit about JSF component state :-). Don't forget that this world exists too, and Shale Remoting as it currently exists supports out of the box.

Craig



--
--------------------------
Sent from my FrankenBerry Wireless Handheld

Reply via email to