On Mon, Feb 23, 2009 at 4:26 PM, Obinna <obi...@gmail.com> wrote:
> 2009/2/23 Musachy Barroso <musa...@gmail.com>
>
>> > I definitely agree that a thoughtful design is the right starting place.
>> > Taking this to the extreme, one thing that I mentioned in my earlier post
>> > (without too much thought) was that perhaps some kind of standardized
>> > specification for binding ajax features to standard struts tags
>> (including
>> > perhaps standardized widget tags - which may not be functional without
>> the
>> > plugin) would be something worth thinking about as there are an
>> increasing
>> > number of struts-ajax library integration each with their own integration
>> > mechanisms and syntax. Given the variety of ajax implementations, this
>> might
>> > be ambitious at the moment, but definitely worth a thought. This would
>> > probably take the form of some kind of standardized <bind/> tag spec with
>> > specified behaviour for implementations.
>> >
>>
>> I think we should keep simple, and down to JQuery. I don't think it is
>> worth the effort to go with some generic interface where multiple
>> libraries can be plugged in. IMO that would add more complexity, lots
>> of bugs and zillions of questions on the mailing lists(just supporting
>> one library has been hard). I would say the same thing about the
>> widgets, adding anything else beyond the jquery datepicker would be
>> too much.
>
>
> I agree. In addition to the datepicker, I think the tabbed pane widget is
> quite useful (I have already implemented it actually). I'd also like to see
> an autocompleter, but there is no native jQuery-UI widget for it yet (though
> a couple of strong candidates) and I remember the dojo autocompleter being a
> bit of a headache.

I'm not completely convinced that the tabbedpanel is necessary... One
thing I think we might want to consider is to avoid JQuery's plugin's
unless they are absolutely necessary. Keeping ourselves close to
JQuery proper may save us in maintenance down the line. That being
said, there are elements available as plugins that provide
functionality that we will want or need (better datepickers).


>>
>> > At the moment, I have taken the other route and integrated a few jquery
>> > ajax-enabled tags, but it shouldn't be too much work to switch these to a
>> > <bind/> tag implementation. So far, I have integrated the div, anchor,
>> > submit and tabbed pane tags (using a custom head tag to inject jquery
>> > dependencies). I have NOT implemented the full set of tag attributes for
>> > these that dojo provided, opting to start with the minimal, critical
>> > attributes first. For the binding I have implemented a very lightweight
>> > custom publish/subscribe jQuery extension framework which is one of the
>> few
>> > things I really liked about the dojo framework. (I'll be sharing this
>> once
>> > on jquery as well once well tested)
>> >
>>
>> Topics is one of the things that would be very nice to have, and I
>> agree that we should start very small.
>>
>
> Subscription/publishing using topics is provided in the jquery-subcribe
> framework I've put together and heavily used by the generated jquery code.
> This is included in js files injected by head tag

That's good that you've already got something in the works. This is
one of the pieces that JQuery misses, that would make it fit well
within struts.

>
>
>>
>> > Perhaps surprisingly, I have currently implemented the templates using
>> the
>> > javatemplates plugin (not yet freemarker), simply because I've been too
>> lazy
>> > to pick up the freemarker template syntax which I'm not very familiar
>> with
>> > yet (this might be a great starting place for some collaborative help).
>>
>> I really like JQuery's one-liners, so maybe it won't be that hard to
>> read in java code, if it get complex then I'd suggest swtiching to
>> FreeMarker.
>>
>
> Not excessively complex at the moment but getting there. Will implement with
> freemarker soon i hope.
>
>

Another point I'd like to make is that I think a first stab would be
to make a plugin that will enable AJAX form submission with
validation. It's an easy task, but it is one of the most common
use-cases. In the "old" days of struts2, you could ajax validation,
just by adding 'theme="ajax"'. Althought I don't think it's worthwhile
to strive for that sort of interoperability, it would be nice to have
a set of form tags and a convention that allows a simple
list-add|edit|delete-list workflow. Using a subscribe/publish/notify
type of paradigm on the (preferably JSON) responses of each request,
would allow users to hook their own handlers into each event.

Here is how I see the work ->

0. have a head tag to include the necessary stuff
1. create a tag for retrieving and then exposing data... This would
allow you to hook a handler to the response. I would use this to
generate the list
2. create a form tag and handlers for validation errors. This would
require a bit of massaging of the JSON results (IMO). Generally, the
client has no idea what happened on the server (response code of
action method / validation status).
3. create form elements that support the validation error messages.

-Wes



-- 
Wes Wannemacher
Author - Struts 2 In Practice
Includes coverage of Struts 2.1, Spring, JPA, JQuery, Sitemesh and more
http://www.manning.com/wannemacher

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to