Return-Path: Delivered-To: apmail-struts-user-archive@www.apache.org Received: (qmail 10940 invoked from network); 26 Aug 2009 09:43:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 26 Aug 2009 09:43:54 -0000 Received: (qmail 98032 invoked by uid 500); 26 Aug 2009 09:43:51 -0000 Delivered-To: apmail-struts-user-archive@struts.apache.org Received: (qmail 97976 invoked by uid 500); 26 Aug 2009 09:43:51 -0000 Mailing-List: contact user-help@struts.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Struts Users Mailing List" Reply-To: "Struts Users Mailing List" Delivered-To: mailing list user@struts.apache.org Received: (qmail 97966 invoked by uid 99); 26 Aug 2009 09:43:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Aug 2009 09:43:51 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of obinna@gmail.com designates 209.85.211.195 as permitted sender) Received: from [209.85.211.195] (HELO mail-yw0-f195.google.com) (209.85.211.195) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Aug 2009 09:43:40 +0000 Received: by ywh33 with SMTP id 33so5270446ywh.18 for ; Wed, 26 Aug 2009 02:43:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=l2bDKd77TTY+tUeVTOGxhy2D436p+qoARpUKvxfWC9Q=; b=Os7hDdC4O1lpthq3YyYDuPVub5jOupnUE9r29/yyAK4gaqnClS64/JHHYNicFljSon 2jEdxO5ACbrPmwJM5rtJUNw4ysMXtDBpBdMxQCSEa0A9N9CXaj15sC6Jn6mO4yET6lm/ pLb3YVPKSVEDAqBPDmw//EENWBPxBQiU3JuFY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=MzMrV0m5JG0zz4K+yIw8gR0eVFQE86Rn3eUnO2+Rp1HMADLIw1H8PPG2R1G3+2GT+c PnNgDq4tYTggDz27QHaO764//Gx2xhlpmaH89ZgAWdOZTEOFw1xii4GizZsWbt78vVbS tKrsQiEg1DvU6Q7536ppfeq72BQUvLrE682vw= MIME-Version: 1.0 Received: by 10.151.20.8 with SMTP id x8mr12571102ybi.163.1251279799254; Wed, 26 Aug 2009 02:43:19 -0700 (PDT) In-Reply-To: References: <25131900.post@talk.nabble.com> Date: Wed, 26 Aug 2009 12:43:19 +0300 Message-ID: Subject: Re: example of rich internet applications (RIAs) using struts 2 From: Obinna To: Struts Users Mailing List Content-Type: multipart/alternative; boundary=000e0cd3ec1ef2ff800472084716 X-Virus-Checked: Checked by ClamAV on apache.org --000e0cd3ec1ef2ff800472084716 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable 2009/8/26 Ernesto Reinaldo Barreiro > Hi Erick, > Thanks for your answer! > > In evaluating frameworks we are trying to see how they do satisfy the > following conditions: > > -Easy of use and developers productivity. I know this sounds very vague b= ut > I essentially mean things like. What components (taglibs in case of strut= s) > do I get for free? How easy is to combine and use them? Are they > extensible? In here, I would like if possible to avoid having > our developers having to write tons of JavaScript/JSP spaghetti code whic= h > at the end result in unmaintenable code... To illustrate this lets see wh= at > takes me to build the table I have show at the image > > http://antilia.googlecode.com/svn/wiki/Grid.PNG > > HTML > >
>
>
> > Java > > TableModel tableModel =3D new TableModel(Person.class, "i= d", > "name", "lastName1"); > .... > Table table =3D new Table("table",tableModel, > Person.createPersons()); > add(table); > > All the JavaScript, Ajax navigation, etc. is taken care by the component. > So, in JSP parlance I would like something like > > > > and those objects added at the server side... > > - Learning curve. How difficult will be for our developers to adapt to a > new > framework. Struts2 has advantage here because right now we are using > struts 1. > - How easy will be maintaining the internal tools, components we create > ourselves and/or how stable-backward compatible are the external > components-tools we choose to use. There's usually a trade-off between simplicity and out-of-the-box functionality and flexibility (how open to extensibility and customization)= . Where you opt for on this spectrum should depend a lot on the sophisticatio= n of your development team. If your team is sophisticated enough, it's better to opt for a framework that has a fairly steep learning curve in the beginning but allows for powerful extensibility which string developers will demand/like later on. If your team is fairly weak, then I think the out-of-the-box no-hassle widgets are what you want. We're actually trying to find a happy medium or rather, to meet both needs with the struts-jquery plugin. A) OUT-OF-THE BOX SIMPLICITY: We're providing a number of standard widgets and components with built-in 'commnication' between them so that developers can implement all standard functionality simply: For example, to have two selec= t boxes, one which is updated when the other changes, you can use the following code: where *firstSelectList *is any kind of iterable collection in your model (action). Or you could create a draggable div with it's contents loaded remotely that drops into a droppable area simply div like this: Drop Into Me The one limitation I explained before is that the out-of-the-box widgets will be limited by what is released by B) EXTENSIBILITY AND POWER-USER SUITABILITY: By using jQuery, a publish/subscribe event model which allows developers to develop/subscribe/publish ANY custom handlers for the component events and by providing a plug-in mechanism for custom widgets, the ability for developers to extend the framework is virtually unlimited. What may be an issue with wicket in this area (from what i know... i may be wrong) is that if you are depending solely on the the provided components, there are bound to be special use cases where you want slightly different functionality or an altogether different component which isn't and to develop it yourself you're probably going to want to use a framework like jQuery anyway to amke things much easier at which point you might as well be using something like the struts-jquery framework. I also cannot stress enough the power of the publish.subscribe framework the struts-jquery plugin uses for interaction between ajax components and with any custom code. I'm not sure if wicket provides something as useful for de-coupled event handling/ component interaction. > > As for Wicket AJAX implementation... You can see an example of how it > works > here > > http://wicket.apache.org/exampleajaxcounter.html > > I think it deserves expending sometime looking at what Wicket does, even = if > you don;t plant to use it, because you can get ideas of how things could = be > done in different ways > I agree. I will definitely give it a run as soon as i find some time! > IMHO, it is really a neat thing... because your don't have to know any Ja= va > script library whatsoever and your can control at the server side which > components to update via AJAX. I didn't know about the grid > > http://www.trirand.com/jqgrid/jqgrid.html > > It looks really nice... I'll look into it and see if can make a neat > Component out of it... > Great. One (somewhat esoteric) issue to be aware of is that there is a difference between a jquery ui component and a qualified jQuery ui 'WIdget". Bona-fide jquery-ui "widgets" follow a particular design pattern and structure of sorts (see jQuery ui site). There are not that many jquery plugins that implement the proper "widget' paradigm. Largely because it's pretty new jqGrid does not for example. Ideally, it would be nice to get all ui components to be proper widgets and I suspect that will happen over time as plugin-developers update their components. Ultimately it would be nice to have all widgets included in the framework be proper "widgets" as that may allow us to provide better plugin hooks etc, but it's not a requirement by any means > Best, > > Ernesto > > > 2009/8/25 Obinna > > > Ernesto, > > I understand what you mean. You're right to point to the issue of > > maintainability as a main concern. One of the big issues with trying to > > support an external AJAX framework really is maintainability. That was = a > > big > > problem with the dojo plugin where the dojo framework changed > dramatically > > between releases and there simply weren't the resources to basically > > re-write the plugin to keep up. This has led to an intentional strategy > > with > > the jquery plugin to only implement (as part of the default plugin), th= e > > widgets that are officially released as part of the jquery-ui release. > This > > really mitigates the risk and job of maintaining the plugin. Having sa= id > > that, in fact specifically because of this, the plugin must allow for > easy > > integration of custom widgets (see the 'Custom Widget' sample so the > > showcase site) and if > the > > plugin is adopted widely enough, one should quickly see a proliferation > of > > plugin-plugins :) - custom widgets that end users have developed for th= e > > plugin. > > What's great is that anything that is implemented as a jquery widget ca= n > be > > easily integrated as a struts2-jquery widget, so a big part of your > answer > > in evaluating this particular plugin is should really be how much you > like > > jquery and it's ajax/widget functionality vs. the js/ajax that other > > plugins/wicket offer - IMO jquery really is about as good as it gets bo= th > > as > > a js/ajax library and a js widget library ;). Funny you should mention = a > > grid control, becuase I am just considering implementing and plugging i= n > a > > widget using the jquery jQGrid > > control at the moment. > > jQuery is a powerful js framework of choice in > > general, and has *TONS* of custom widgets (some better than others) whi= ch > > you can use independently or choose to integrate with struts2 using the > > plugin. > > > > Maturity may of course be a concern of yours, and though struts 2 is ve= ry > > mature, but the jquery-plugin for it is still in its youth if that > matters > > to you. I am using it effectively in production at the moment, but then > > again I am also working on it. > > > > I'm not familiar with wicket's functionality (it's somehting i've been > > planning to check out), so please explain what you mean by 'what they > offer > > in terms of functionality and producivity'. Do you mean the list of > > available components/widgets? I can't speak for the struts team but my > > feeling is that the goals of struts and wicket are quite different and > that > > should really effect your choice. > > > > Hope this helps. > > > > -Eric > > > > > > > > 2009/8/25 Ernesto Reinaldo Barreiro > > > > > Hi Obinna, > > > Thanks for your answer... > > > > > > I have seen and tried both the dojo plugin and the > struts2-jquery-plugin > > in > > > an small showcase application I have built just to summarize (for > > internal > > > use) what is available for struts2.... But to be sincere I'm not very > > > impressed about what they offer in terms of productivity and > > functionality > > > if you compare them with what you get using a component based > frameworks > > > like Wicket. Please, I have no intention to say that there is anythi= ng > > > wrong with those plugins, I'm a developer myself and I know how much > > energy > > > demands maintaining something... It is just that the way to work with > > them > > > seem to me unnatural after trying Wicket's AJAX implementation. > > > > > > For instance, something I haven't found is a good free grid component > > > supporting AJAX navigation and advanced functionality like draggable, > > > resizable columns... Something like: > > > > > > http://antilia.googlecode.com/svn/wiki/Grid.PNG > > > http://antilia.googlecode.com/svn/wiki/GridExport.PNG > > > http://antilia.googlecode.com/svn/wiki/Panels.PNG > > > > > > So, I just was wondering what kind of tag-libraries, components, etc. > > > People > > > use to build such applications...and how much effort was to build > them... > > > and weather those applications where freely available just to see how > do > > > they look and what kind of functionality I can expect to achieve... > > > > > > Best, > > > > > > Ernesto > > > > > > > > > > > > > > > 2009/8/25 Obinna > > > > > > > I have used struts 2 for a number of RIAs but unfortunately none of > > them > > > > are > > > > public. In the past I used to use it with the dojo plugin, and > samples > > > for > > > > using that framework are available with the struts showcase, howeve= r > > > > support > > > > for that has been stopped and struts 2 is moving toward implementin= g > a > > > > standard jquery plugin. At the moment there are two functional > > > incarnations > > > > of a jquery ajax plugin at: > > > > http://code.google.com/p/struts2-jquery-plugin/and > > > > http://code.google.com/p/struts2-jquery/ which are in the process o= f > > > > getting > > > > merged very soon. Both have fairly extensive showcase sites and > > > > documentation. > > > > > > > > I also used struts 1 in the past, and general speaking, I've found > the > > > move > > > > from struts 1 to struts 2 nothing short of revolutionizing. With th= e > > > > current > > > > jquery ajax plugins (and the general power of jquery itself for > > > > non-componentized interface stuff), the applications I am producing > now > > > are > > > > quite impressive (if i may say so myself :) ) and rapid to develop. > > > > > > > > - Eric > > > > > > > > On Tue, Aug 25, 2009 at 1:27 PM, reiern70 > wrote: > > > > > > > > > > > > > > Sorry for multiple post of the same question but I thought my > message > > > > > didn't > > > > > make it to the list as I get > > > > > the following notification > > > > > --- > > > > > Hi. This is the deliver program at bjtu.edu.cn. > > > > > I'm afraid I wasn't able to deliver your message to the following > > > > > addresses. > > > > > This is a permanent error; I've given up. Sorry it didn't work ou= t. > > > > > > > > > > 02211071@mail.bjtu.edu.cn > > > > > quota exceed > > > > > --- Attachment is a copy of the message. > > > > > > > > > > [=D5=E2=CA=C7=B7=FE=CE=F1=C6=F7 bjtu.edu.cn =B5=C4=CD=B6=B5=DD=B3= =CC=D0=F2=B7=B5=BB=D8=B5=C4=CC=E1=CA=BE=D0=C5=CF=A2] > > > > > > > > > > =B5=BD=CF=C2=C1=D0=B5=D8=D6=B7=B5=C4=D0=C5=BC=FE=CD=B6=B5=DD=CA= =A7=B0=DC=A3=AC=B6=D4=B7=BD=B7=FE=CE=F1=C6=F7=CE=DE=B7=A8=D5=FD=B3=A3=BD=D3= =CA=DC=BB=F2=D5=DF=BE=DC=BE=F8=BD=D3=CA=DC=D5=E2=B7=E2=D3=CA=BC=FE=A3=AC > > > > > =D5=E2=CA=C7=D2=BB=B8=F6=D3=C0=BE=C3=D0=D4=B5=C4=B4=ED=CE=F3=A3= =AC=B7=FE=CE=F1=C6=F7=D2=D1=BE=AD=B7=C5=C6=FA=BC=CC=D0=F8=CD=B6=B5=DD=A1=A3 > > > > > 02211071@mail.bjtu.edu.cn > > > > > > > > > > =B6=D4=B7=BD=B7=FE=CE=F1=C6=F7=B7=B5=BB=D8=B4=ED=CE=F3=CC=E1=CA= =BE: > > > > > quota exceed > > > > > -- > > > > > [=B8=BD=BC=FE=CA=C7=C4=FA=CB=F9=B7=A2=CB=CD=D0=C5=BC=FE=B5=C4=D4= =AD=BC=FE] > > > > > --- > > > > > > > > > > Does anyone has the same problem? > > > > > > > > > > Best. > > > > > > > > > > Ernesto > > > > > > > > > > > > > > > reiern70 wrote: > > > > > > > > > > > > Hi, > > > > > > > > > > > > I have been trying to find references to enterpise WEB > > applications, > > > or > > > > > > Rich > > > > > > Internet Applications, out there using struts2 but I have found > > > > > > no references on struts 2 web site or in this mailing list. My > > > > apologies > > > > > > if this information is available somewhere on the strust2 site = or > > > this > > > > > > list and I somehow I just missed it. > > > > > > > > > > > > Right now we are evaluating different technologies to be used f= or > > > > > > WEB development at our company and struts2 is one of them (as w= e > > are > > > > > > currently using struts 1 for development). In fact, one of the > > > > objectives > > > > > > of > > > > > > the our quest is to select a Java WEB framework that allows us = to > > > > easily > > > > > > build Rich Internet Applications with lots of AJAX based widget= s > > and > > > > AJAX > > > > > > like functionality... > > > > > > > > > > > > Any pointers to publicly available struts2 based RIA applicatio= ns > > > will > > > > be > > > > > > welcome... > > > > > > > > > > > > Best, > > > > > > > > > > > > Ernesto > > > > > > > > > > > > > > > > > > > > > > -- > > > > > View this message in context: > > > > > > > > > > > > > > > http://www.nabble.com/example-of-rich-internet-applications-%28RIAs%29-us= ing-struts-2-tp25131617p25131900.html > > > > > Sent from the Struts - User mailing list archive at Nabble.com. > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org > > > > > For additional commands, e-mail: user-help@struts.apache.org > > > > > > > > > > > > > > > > > > > > --000e0cd3ec1ef2ff800472084716--