Für Webanwendungen die ich mit Java erstelle, verwende ich seit einigen Jahren Struts und seit einiger Zeit Struts2. Struts2 hat außer dem Namen nicht sehr viel mit dem älteren und weit verbreiteten Struts gemeinsam, sondern es basiert auf dem Framework Webworks. Das Tolle an Struts2 ist seine Flexibilität. So gibt es für verschiedenste Einsatzzwecke Plugins z.B. ein Rome Plugin zum Erzeugen von RSS Feeds oder eine JFreeChart Plugin, um Charts in die Webanwendung zu integrieren. Da moderne Webanwendungen häufig sehr AJAX lastig sind, bei weinfreund.de verwende ich z.B. sehr viel AJAX im Backend und im Administrationsbereich, bringt Struts2 gleich ein Dojo Plugin von Haus aus mit. Mit dem Plugin ist es möglich, ohne Kenntnisse von JavaScript AJAX Funktionalität in die Anwendung einzubauen. Folgendes Beispiel zeigt, wie man das Ergebnis eines Links per AJAX in ein DIV lädt.
< %@ taglib prefix="s" uri="/struts-tags" %>
< %@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
<head>
    <sx :head />
</head>
 
<!-- Ein leeres Div in das unser Ergebnis geladen wird -->
<div id="ziel" />
 
<!-- Unser Link, durch das Attribut targets wird das Ergebnis automatisch in unser oben definiertes DIV geladen. -->
<sx :a targets="div" value="Google Startseite" href="http://www.google.de" />
Das Dojo Plugin bringt auch einige UI Elemente wie Tabs, Autocompleter, Kalender und mehr mit, die ähnlich einfach wie der Link zu benutzen gehen. Warum jQuery? Da ich mit dem Dojo Plugin an einige Grenzen gestoßen bin, z.B. bei Fileupload und JavaScript in AJAX-Results, und es auch viel Aufwand ist, die Optik an die eigene Webseite anzupassen, habe ich jQuery ausprobiert. Leider gibt es noch kein Plugin was einem häufige Funktionen genauso erleichtern wie das Dojo Plugin. Bis jetzt gibt es nur Alpha Versionen und Entwicklerversionen eines solchen Plugins. Ich habe jQuery mit purem JavaScript benutzt. Das erfordert zwar einen erhöhten Programmieraufwand und Einarbeitung in JavaScript, aber jQuery hat einen leicht zu erlernenden Syntax, eine große Community und Plugins für fast jeden Einsatzzweck. Mit jQuery sieht das gleiche Beispiel von oben so aus.
<head>
  <script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function() {
    $("#googlelink").click(function()	{
      $("#ziel>").load("http://www.google.de");
    });
  });
</script>
</head>
 
<div id="ziel" />
 
<a id="googlelink" href="javascript:void(0)">Google Startseite</a>
Das Ganze ist zwar nicht so schick zu lesen wie mit dem Dojo Plugin, aber mit etwas Erfahrung hat man mit jQuery eine bessere Kontrolle über den Code und ist flexibler. Auch jQuery bringt mit Hilfe von jQuery UI leicht zu benutzende Widgets wie Tabs, Dialogboxen und Kalender mit, welche auch noch mit dem Themeroller leicht an das eigene Layout anpassbar sind. Fazit: Mit jQuery hat man eine gute Alternative zum Struts2 Dojo Plugin, da man dieses flexibler an eigene Bedürfnisse anpassen und mit Plugins auch besser erweitern kann. Vielleicht gibt es ja für Struts2 auch bald ein brauchbares jQuery Plugin, so dass man es genauso einfach wie Dojo benutzen kann. Ich kann den Einsatz von jQuery für AJAX basierte Webanwendungen nur empfehlen.