This question already has an answer here:
Sometimes I see JSF URL is *.jsf, sometimes *.xhtml and sometimes /faces/*. Why?
                                
                                    (1个答案)
                                
                        
                                5年前关闭。
            
                    
我想为我的facelets使用自定义URL扩展。比方说,用.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
  
  类型状态报告
  
  消息/Project/facelets/common/index.jsp
  
  描述所请求的资源不可用。
  
  Apache Tomcat / 7.0.39


请注意,即使我在任何地方都没有使用.jsp扩展名,它也会显示.jsp。任何指针在那里出了什么问题?

最佳答案

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

07-28 01:56
查看更多