Mischen JSP und XHTML (Facelets) in JSF2-Projekt - möglich?
Ich habe einen Kunden, der will JSF2 und Sie möchte, dass XHTML ist nun der Standard (Facelets).
Jedoch haben Sie eine riesige Menge an "legacy" JSP von Ihren JSF1.x-Codebasis.
Ich weiß, es ist wohl nicht wünschenswert, aber wird es möglich sein, Unterstützung für eine Mischung aus beiden in JSF2, zumindest für eine übergangszeit, während Sie Hafen?
Ich weiß, es war möglich, mischen die beiden in JSF1.x, aber ich kann nicht finden alle Informationen über diese in JSF2.
Habe ich gegoogelt hart, aber natürlich alle JSF2 Fokus auf Facelets. Auch mein kurzer Versuch mischen (ich bin kein Experte auf JSF!) hat zum scheitern geführt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser beantwortet in der Facelets-FAQ: mit Präfix-mapping auf
FacesServlet
. Sie können dann auf JSP-Seiten durch http://example.com/faces/page.jsp und Facelets-Seiten von http://example.com/faces/page.xhtml. Hier ist ein Zitat von Relevanz:*.jsf
. JSF2 wird die erste Prüfung auf XHTML-Datei. Wenn nicht vorhanden, dann scannt es für JSP-Datei. Siehe auch stackoverflow.com/questions/4441713/...Den wiki-Abschnitt zitiert BalusC scheint in der Tat veraltet. In meinem extension-mapping (*.Gesichter) setup hatte ich das problem mit der vorgeschlagenen
javax.faces.DEFAULT_SUFFIX
eingestellt.jsp
generiert, dass die action-URLs in form-tags von *.xhtml-Seiten bekam .jsp-Erweiterung statt einem .Flächen-Erweiterung (und konnte deshalb nicht zugeordnet werden).Nachdem ich trat in die entsprechenden Klassen der Apache MyFaces 2.x Umsetzung (siehe org.apache.myfaces.geteilt wird.- Anwendung.DefaultViewHandlerSupport.calculateActionURL(FacesContext context, String viewId)) die folgenden setup-stellte sich heraus, für die Arbeit in unseren parallelen Einsatz von JSP und Facelets-View-Handling.
Wie verwende ich Facelets und JSP in der gleichen Anwendung?
Neben der Präfix-mapping können Sie mit extension-mapping (z.B. *.Flächen) für die Facelets-Seiten, um für diese zu arbeiten. Lassen Sie die DEFAULT_SUFFIX mit den JSF-Standard von
.jsp .xhtml
. Konfigurieren Sie die Passenden s VIEW_MAPPINGS parameter:Für diejenigen, die interessiert sind, in die details der Verarbeitung von action-urls in org.apache.myfaces.geteilt wird.- Anwendung.DefaultViewHandlerSupport.calculateActionURL(FacesContext context, String viewId):
Den oben genannten Vorschlag hat nicht funktioniert für mich. Die wiki-Seite ist wahrscheinlich veraltet. Aus der JSF2-Spezifikation habe ich die folgenden parameter, die funktionierte:
statt: