在JSF中使用自定义URL扩展

时间:2013-11-06 14:39:21

标签: jsf tomcat servlets

我想为facelets使用自定义网址扩展程序。比方说,.asdf代替.xhtml.jsf

我将映射添加到web.xml

<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-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.asdf</url-pattern>
</servlet-mapping>

index.asdf位于WebContent/facelets/common/index.asdf,但如果我尝试使用浏览器(http://localhost:8080/Project/facelets/common/index.asdf)访问它,我会收到以下错误消息:

  

HTTP状态404 - /Project/facelets/common/index.jsp

     

输入状态报告

     

message /Project/facelets/common/index.jsp

     

说明请求的资源不可用。

     

Apache Tomcat / 7.0.39

请注意,即使我没有在任何地方使用.jsp扩展名,也会显示.jsp。任何指针有什么不对吗?

1 个答案:

答案 0 :(得分:0)

好吧,看起来我误解了一些基础知识。我将磁盘上的文件重命名为index.asdf,我不应该这样做。他们应该保留.xhtml扩展名,只有我访问它们的扩展名才是新扩展名。现在一切都按预期工作。如果您想限制对这些原始.xhtml文件的访问,请使用此https://stackoverflow.com/a/5675913/989919