2010-12-07 5 views
6

Ich beginne ein Java-Projekt, wo der Kunde die Verwendung von XHTML 1.0 Strict beauftragt hat. JSF Facelets, die XHTML-basiert sind, schienen zunächst eine gute Option zu sein, aber ich habe festgestellt, dass sie nicht XHTML Strict produzieren können, und dies wird von der Community als a very low priority issue angesehen.Gibt es ein Java-Web-Framework, das XHTML 1.0 Strict zuverlässig erzeugen kann?

Gibt es andere Java-Frameworks, die das Rendern als XHTML Strict unterstützen? Was ist mit den JSTL-Tag-Bibliotheken?

+0

Ich weiß Struts 1.3.x Tags können xhtml rendern, aber wie Strict ?, ich definiere einfach ihre Definition auf jeder Seite (um sicher zu sein). –

+1

Nun, alles andere als JSF und GWT (und dergleichen) produzieren überhaupt kein HTML von seinen Kernkomponenten. Für JSP gibt es Taglibs, die strikt HTML erzeugen können oder auch nicht, aber das hängt von den jeweiligen Taglibs ab. – Bozho

+2

das beiseite - eine Voraussetzung für strenge ist nicht etwas ziemlich vernünftig. Was ist, wenn das nächste, was sie wollen, wäre es auf IE6 zu arbeiten :) – Bozho

Antwort

1

Die Dokumentation für Spring Web MVC 2.0.x gibt an, dass die zugeordneten Tag-Bibliotheken HTML4.0/XHTML1.0 gültiges Markup erzeugen. Das könnte ein guter Ausgangspunkt sein, denn ich würde erwarten, dass 2.5 und wahrscheinlich sogar 3.0 dies auch unterstützen.

http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

+1

Es hat keinen Sinn, mit alten Versionen zu verlinken. Hier ist die aktuelle Version: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html –

+0

XHTML 1.0 Transitional oder XHTML 1.0 Strict? Es gibt einen großen Unterschied, und ich zögere, einem Dokument, das es ignoriert, viel Vertrauen zu schenken. Außerdem enthält die aktuelle Version keine Aussage mehr über XHTML. –

+1

Es enthält eine Aussage, es ist nur an einer anderen Stelle in der Dokumentation: http://static.springsource.org/spring/docs/3.0.x/reference/spring-form.tld.html – kdonald

5

Ich werde mein Kommentar hier ein wenig erweitern. JSF ist kein reguläres Web-Framework. Es ist ein komponentenbasiertes Web-Framework. So sind GWT, Vaadin, Echo und dergleichen. Mit ihnen kann man nicht leicht umgehen, wenn sie XHTML strikt nicht produzieren. (Nun, Sie können die Komponente/Renderer in JSF ändern, wenn Sie möchten)

Auf der anderen Seite sind Frameworks wie Spring-MVC, Struts, Grails, etc. aktionsbasierte Web-Frameworks. Sie haben keine Komponenten als intrinsische Teile. Ja, sie bieten bequeme Tag-Bibliotheken, aber Sie können ohne sie auskommen, wenn sie nicht in der Lage sind, striktes xhtml zu erzeugen. Zum Beispiel können Sie <form:input> verwenden, aber Sie können auch <input type="text" /> verwenden und einfach die richtigen name und value einstellen.

Die meisten aktionsbasierten Frameworks basieren auf JSTL für ihre Ablaufsteuerung in der Ansicht (JSP). Also keine Scriptlets. Aber JSTL selbst macht kein Markup. So können Sie JSTL + Ihre handgeschriebene Markup verwenden, um XHTML strict zu generieren.

Die Tag-Bibliotheken, die verwendet werden, ist eine andere Geschichte. Zum Beispiel, wenn Sie einen Kalender möchten, können Sie eine Taglib verwenden, und es möglicherweise nicht richtig xhtml. Sie können aber auch einen jQuery-Kalender erstellen - der Unterschied wird für ein aktionsbasiertes Framework nicht groß sein.

Das gesagt, ich habe Erfahrung mit Spring-MVC und Grails, und Sie können sie verwenden - sie ermöglichen feinkörnige Kontrolle über die generierte Markup.

+0

Nur neugierig: ist es einfach, Aktionen ohne Spring MVC '' Tag zu binden? Wird das Attribut 'name' nicht generiert? (was nämlich gemäß XHTML Strict ungültig ist) – BalusC

+0

'

' - generierte form von meinem letzten projekt. Es erzeugt also keinen Namen. Selbst wenn dies der Fall wäre, könnten Sie '' verwenden und 'action' und' method' festlegen - sie sind ausreichend. – Bozho

Verwandte Themen