I have some experience creating custom struts2 tags, but for ajax I do not
advise this route at all.  XML is not meant as a replacement for a
programming language, it is meant for configuration. It might seem
intuitive without further investigation that there are a limited number of
HTML UI elements and their functionality quite straight forward and so it
would seem reasonable that a configuration only route could work in the
general case. This is wrong as evidenced by all efforts to define dynamic
UI elements using XML.

Even JavaFX tried to use xml and that was abandoned, they had the benefit
of designing the entire environment from the ground up, which is hardly the
case here.

Not sure if you are familiar with the popular Question and Answer site
"Stack Overflow", however a great many questions regarding the struts2 ajax
tags go unanswered. If people could find solutions for their configuration
issues I wouldn't be so open with my negative view of ajax tags. Since it
is most often new users of Struts2 that attempt to use these tags and to
what appears to be dismal results I can't help but think that these tags
may actually be of harm to the struts2 image.

I've only experimented with the jquery ajax tags breifly and experienced
frustration. Also before that experimented with the now deprecated dojo
tags. I had used the dojo tags within their prescribed limits but it is
much more enjoyable to have freedom. They were just too cumbersome. As soon
as you use JavaScript everything is far easier.

Try to use Unobtrusive JavaScript:
http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

This will make your html "tag like" while allowing you to use the
JavaScript APIs as intended.

It is worth noting that the tag libraries can be used as templates. I bring
this up because one natural objection to not using a tag library would be a
loss in terms of this particular use. There are a number of other solutions
in this area one of them is Apache Tiles. JSPs, Freemarker, and Velocity
are all view technologies and while they have facilities for templates it
isn't their first concern. Apache tiles and Sitemesh both address the issue
of reducing boiler plate head on. Tiles does not try to do what the
aforementioned view technologies do, instead think of it as a way to factor
commonality out of any of those view technologies. As such both Apache
Tiles is a meta-view technology.

What I advise:

1) Avoid ajax tag libraries and write JavaScript by hand - even if you
don't know JS, you will be able to understand the documentation of the
popular JS UI elements and achieve the same level of functionality as
provided by the ajax tags even if all you do is cut and paste programming.
2) Follow the Unobtrusive JavaScript practice.
3) When writing JS do not hard code URLs use the struts2 URL tag (It will
pick up changes to the context root that way).
4) When asking for help with the client side, no one needs to know what
server side technology is used. The is greatly improve your chances for
positive feedback.
5) Use the Struts2-JSON plugin to produce data for your ajax consuming UI
elements and also as a means of accepting JSON data into actions.
6) When asking for server side support, try to insulate the audience from
your particular JS. (Determine that the correct data is being sent to the
server, if it not the issue is a client side, if the correct data is being
sent only provide that data [the query string or the JSON string]).
7) Use firebug plugin fore Firefox, it is a huge help.
------------
8) Should you feel the need for a stronger templates solution consider
tiles (or sitemesh), this link points to it in a rather current use of it:
http://tech.finn.no/2012/07/25/the-ultimate-view-tiles-3/

Hope the reasoning is clear enough. I sincerely want to save you and anyone
else with similar concern some time and sanity.





On Sat, Aug 10, 2013 at 3:05 AM, Alireza Fattahi <afatt...@yahoo.com> wrote:

> Thanks for your comment.
> Did you have any experience with struts jquery tag or other tags too?
> Or you complete suggest that we write our own tags !
>
>
>
> ~Regards,
> ~~Alireza Fattahi
>
>
> ________________________________
>  From: Ken McWilliams <ken.mcwilli...@gmail.com>
> To: Struts Users Mailing List <user@struts.apache.org>
> Sent: Friday, 9 August 2013, 8:22
> Subject: Re: AJAX Jsp tags
>
>
> Don't use a JSP AJAX tag library. The dojo JSP tags didn't work well not
> because of dojo or an fault of the tag authors, the technologies simply
> don't mesh. It's as sane to program Java via XML as it is to program
> JavaScript via XML.
>
> XML is used for configuration. At first glance you think you'll only need
> trivial behaviour but this is seldom ever the case,  JS UI components are
> much easier to work with and you will need to provide your own handlers,
> which are often required even in the simple cases. XML can not account for
> all these cases and does not provides the means to add custom handlers in a
> way that would be as simple as using the underlying JS framework naturally.
>
> Further the tag authors often lag behind the UI components that they wrap,
> the documentation and features often fall behind too.
>
> With even a trivial understanding of JS you should be able to produce the
> same results as the Tags in the same time frame, as you gain experience
> you'll quickly superseded the capabilities of any tag library.
>
>
>
>
>
> On Thu, Aug 8, 2013 at 11:02 AM, Chris Pratt <thechrispr...@gmail.com
> >wrote:
>
> > The dojo based tags are deprecated, the jQuery based tags are not.
> >   (*Chris*)
> >
> >
> > On Thu, Aug 8, 2013 at 9:54 AM, Alireza Fattahi <afatt...@yahoo.com>
> > wrote:
> >
> > > Hi,
> > >
> > > I have confused with struts 2 ajax please correct me:
> > > 1- The dojo plugin is deprecated (
> > > http://struts.apache.org/release/2.3.x/docs/ajax-tags.html)
> > > 2- According to above we are not recommended to use dojo plugin in new
> > > projects.
> > >  3- All tags that mentioned in above page like: a, autocompliter,bind
> ...
> > > shall not be used.
> > > 4- According to page
> > http://struts.apache.org/release/2.3.x/docs/ajax.html
> > > :
> > > "....First, you can use some type of JSP tag. Here, you don't have to
> > know
> > > very much at all about Ajax or JavaScript. The taglib does all the
> work,
> > > and you just have to figure out how to use the taglib. The standard
> > > Struts 2 taglib includes several Ajax JSP tags,"
> > > 5- The "Ajax JSP tags" link above will redirect to
> > > http://struts.apache.org/release/2.3.x/docs/ajax-tags.html, which is
> > > deprecated!!
> > >
> > > I don't get it !
> > > Can we use AJAX Jsp tags or they are deprecated ?
> > >
> > >
> > > ~Regards,
> > > ~~Alireza Fattahi
> > >
> >
>

Reply via email to