Die URL-Muster von JSF-Seiten werden durch <servlet-mapping>
der FacesServlet
in web.xml
angegeben. Wie Sie erwähnt, dass .xhtml
funktioniert gut, Sie haben es offenbar wie folgt konfiguriert:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Sie müssen die <url-pattern>
entsprechend ändern, um die gewünschte virtuelle URL-Erweiterung zu bekommen.
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Das ist alles, was Sie ändern müssen, um die konkrete funktionale Anforderung wirklich zu erfüllen.
Allerdings, dies bringt ein Sicherheitsproblem auf. Der Endbenutzer kann jetzt den Quelltext der ursprünglichen Facelets-Datei anzeigen, wenn er die Erweiterung in der URL zurück von .jsf
in .xhtml
ändert. Sie können dies verhindern, indem Sie die folgende Sicherheitsbeschränkung zu web.xml
Zugabe:
<security-constraint>
<display-name>Restrict access to Facelets source code.</display-name>
<web-resource-collection>
<web-resource-name>Facelets</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
Heutzutage ist es Prestige Zweck es mit '.do' zu beenden. –
@RomanC War nicht .do die beliebte Sache im Jahr 2001? (Struts 1) Heutzutage ist die Verwendung einer Erweiterung gar nicht cooler;) Für JSF können Sie OmniFaces oder PrettyFaces verwenden. –
Es ist so beliebt, wie sie es zu jeder ISBN hinzufügen, zum Beispiel http://shop.oreilly.com/product/9780596005726.do –