# Spring Frontend



## Generic1 (9. Mrz 2010)

Hallo,

ich habe die freie wahl, mir ein Frontend- Framework für ein Webprojekt auszusuchen.
Was würdet ihr nehmen, Spring unterstützt ja so ziemlich alles, von JSF, Tapesty, WebWork, JSP usw.
Es handelt sich um ein Anmeldeformular, welches ich dann in weiterer Folge ausbauen möchte, d.h. ein paar schöne Bilder rund um die Anmeldung, ein paar Werbungen usw.
Besten Dank, 
lg


----------



## byte (9. Mrz 2010)

Wenn Du schon Spring verwendest, kannst Du auch gleich Spring MVC dafür benutzen.


----------



## Generic1 (9. Mrz 2010)

Aha, unter Spring MVC verstehe ich eher die Logik hinter der View, also das DispatcherServlet empfängt die URL, dann wird mittels des URLmappings weitergeleitet zu einem Controller, der Controller macht dann was mittels Services, DAOs usw., es wird dann ein ModelAndView- Object zum ViewResolver weitergegeben, wo dann der Name der View als String drinnensteht und dann wird mittels des Names die View ausgesucht und angezeigt.
Die View ist beim Spring MVC immer ein JSP so weit ich mich entsinnen kann, also müsste ich das alles auf JSP aufbauen, oder?
JSP ist ja eher schon out-of-date!?


----------



## byte (9. Mrz 2010)

Ich finde nicht, dass die JstlView outdated ist. Es kommt halt drauf an, mit welchen Taglibs Du das kombinierst. Spring MVC liefert ja z.B. eine eigene Tablib für Forms mit, die ziemlich brauchbar ist.

Man kann das ganze auch prima mit AJAX Calls verbinden, z.B. mit Hilfe von json-lib. Da gibts eine JsonView für Spring, die automatisch das ModelAndView nach Json serialisiert.


Kann aber ansonsten nicht viel zu den von Dir aufgezählten Libs sagen. Bezweifel aber irgendwie, dass es sinnvoll ist, sich z.B. JSF nur fürs Rendern der View mit an Bord zu holen.


----------



## ARadauer (9. Mrz 2010)

ich finde tapestry ganz nett


----------



## Generic1 (9. Mrz 2010)

OK, das scheint mir dann die plausibelste Lösung zu sein mit der JSTL, das mit dem JSon hab ich schon mal gelesen, mir ist das aber nicht ganz klar, wie das funkt. 
JSon ist ja ein Framework in JavaScript um mit JS objektorientiert zu programmieren, aber wie das mit dem Spring MVC zusammenspielt ist mir nicht klar.
Das würde ja heißen, das das ModelAndView- Objekt serialisiert wird und im JSon kann ich mir dann die index=wert - Duples herausholen und mit javascript anzeigen.

Bin ich da am richtigen Dampfer?

Da müsste ich mich dann mit JSon näher beschäftigen, in javaScript bin ich halbwegs fit.
Mal schaun wieviel aufwand das wäre.


----------



## ARadauer (9. Mrz 2010)

JSON ist im Grunde sowas wie XML, einfach ein Textformat. Das gute an JSON ist, wenn du es in ein JavaScript eval stopfst, dass dan ein js objekt raus kommt und du super einfach auf die Daten zugreifen kannst.


----------



## byte (9. Mrz 2010)

Json ist einfach nur eine Syntax zur Beschreibung von Daten, ähnlich wie XML. Der Vorteil ist, dass Du Json direkt mit JavaScript verarbeiten kannst. Es sind in JS einfache Objekte.

Mit Hilfe von json-lib kannst Du einen ganz normalen Spring MVC @Controller über JavaScript (XHR -XML Http Request) ansprechen, dieser liefert dann die Daten als Json, so dass Du das Ergebnis direkt per JavaScript auf Deiner Seite anzeigen kannst.

Wenn Du eine JavaScript lastige View bauen willst, dann kann ich Dir YUI empfehlen: YUI Library


Edit: Wenn Du Beispielcode suchst, kannst Du mal in folgendes Google Code Projekt gucken:

spring-mvc-testing - Project Hosting on Google Code

Da habe ich kürzlich ein bißchen mit YUI, Spring MVC und json-lib rumgespielt. Ist quasi ein Mini-HelloWorld (nix besonderes). Du kannst das Projekt einfach mit Maven starten (tomcat:run).


----------



## Generic1 (9. Mrz 2010)

Ist es möglich, das Frontend einfach auszutauschen, wenn ich es mit JSon mache,
Wenn direkt auf den Controller zugegriffen wird wird wahrscheinlich die Austauschbarkeit darunter leiden.
Ich möchte nämlich jetzt mal ein Frontend haben, welche meine Voraussetzungen erfüllt und später dann die View vielleicht austauschen, aufpeppen (mit Flex, Flash o.ö).

Bin ich in diese Richtung offen, habt ihr Erfahrung damit?
Besten Dank,


----------



## Noctarius (9. Mrz 2010)

Klar, wie andere schon sagten: JSON ist eine Datenbeschreibungssprache.
Einmal durch ein eval geschoben ist es ein ganz normales "Javascript-Object", welches du clientseitig wie andere Javascript-Dinger auch nutzen kannst. Damit bist du unabhängig von der Anzeigelogik und kannst später einfach die Anzeigeschicht tauschen und weiterhin im gleichen Stil auf die Daten zugreifen.

Weiterhin gibt es für Spring extra JSON-Views um Daten in JSON zu wandeln und JSON erzeugt um Längen weniger Overhead als XML (ist dafür aber nicht an ein festes, validierbares Schema bindbar).


----------



## byte (9. Mrz 2010)

Generic1 hat gesagt.:


> Ist es möglich, das Frontend einfach auszutauschen, wenn ich es mit JSon mache



Das ist bei Spring MVC grundsätzlich immer möglich. Der @Controller ist ja nicht fest mit einer bestimmten View Technologie verknüpft, sondern gibt lediglich einen View-Namen zurück (samt Model). Der View Name wird dann von einem ViewResolver aufgelöst. Du kannst also problemlos später eine alternative View unter diesem Namen verfügbar machen und somit die Technologie wechseln.

Einzige Bedingung ist, dass es eine View dafür in Spring MVC gibt. Das kann man sich zur Not auch selber schreiben. Die gängigen View Technologien werden aber eh schon unterstützt. Zur Not kann man sich auch ne eigene View schreiben und z.B. über einen ResourceBundleViewResolver verdrahten.


----------

