How to hide .xhtml extension from URL
在JSF 2.0中,如何隐藏URL的
我只想将当前URL"
在
1 2 3 4 | <context-param> <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name> <param-value>*.jspx</param-value> </context-param> |
要么
1 2 3 4 | <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.jspx</param-value> </context-param> |
我的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>School Management System</display-name> <welcome-file-list> <welcome-file>faces/index.xhtml</welcome-file> </welcome-file-list> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>upload</servlet-name> <servlet-class>com.sms.model.student.Upload</servlet-class> </servlet> <servlet-mapping> <servlet-name>upload</servlet-name> <url-pattern>/Upload</url-pattern> </servlet-mapping> <servlet> <servlet-name>marks</servlet-name> <servlet-class>com.sms.student.service.Mark</servlet-class> </servlet> <servlet-mapping> <servlet-name>marks</servlet-name> <url-pattern>/marks</url-pattern> </servlet-mapping> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/error/error.xhtml</location> </error-page> <session-config> <session-timeout>30</session-timeout> </session-config> <filter> <filter-name>Extensions Filter</filter-name> <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class> </filter> <filter-mapping> <filter-name>Extensions Filter</filter-name> <servlet-name>Faces Servlet</servlet-name> </filter-mapping> <context-param> <param-name>org.richfaces.skin</param-name> <param-value>classic</param-value> </context-param> <context-param> <param-name>org.richfaces.enableControlSkinning</param-name> <param-value>true</param-value> </context-param> </web-app> |
如果您只想更改扩展名,请遵循@Captain Giraffe提供的链接中的建议。
要完全隐藏扩展名,可以使用PrettyFaces或OmniFaces。
OmniFaces展示柜中有一个示例。
编辑:我想由@Captain Giraffe提供的链接解决了一个不同的问题-如何使用扩展名不同于
如果要在URL末尾更改扩展名,可以将其添加到
1 2 3 4 5 6 7 8 9 10 | <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.foo</url-pattern> </servlet-mapping> |
从现在开始,您的页面将以
您只需要在web.xml中添加以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <servlet> <servlet-name>faces</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>faces</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <context-param> <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name> <param-value>/*.xhtml</param-value> </context-param> |
并在pom.xml中添加omnifaces依赖项
1 2 3 4 5 | <dependency> <groupId>org.omnifaces</groupId> omnifaces</artifactId> <version>2.6.6</version> </dependency> |
它将从URL隐藏.xhtml扩展名。
有一种使用Dispatcher View模式的方法,其中可以将任何
例如,
因此,
您可以在此处查看详细信息(也可以查看最后评论)