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.
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). –
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
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