jsf - 为什么 FacesServlet 不能有/*. 的 url-pattern?

标签 jsf jakarta-ee url-pattern servlet-mapping

这是我的 web.xml :

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
当我导航到:
http://localhost:8080/LearningRoot/index.xhtml
我可以很好地看到页面,但是当我导航到:
http://localhost:8080/LearningRoot/
我收到错误:

An Error Occurred:

The FacesServlet cannot have a url-pattern of /*. Please define a different url-pattern.


但为什么?
这是我的欢迎文件:
<welcome-file-list>
    <welcome-file>/index.xhtml</welcome-file>
</welcome-file-list>

最佳答案

因为那意味着 一切遇到上下文根的情况将由 FacesServlet 处理,FacesServlet 已经知道它不可能满足这一要求(这显然没有意义)。

要实现您想要的映射,请使用 .xhtml FaceServlet 上的映射

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

关于jsf - 为什么 FacesServlet 不能有/*. 的 url-pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210420/

相关文章:

java - 混淆 Web 服务与网站(REST、JAX-RS、Servlet 等)

Hibernate映射异常: Repeated column in mapping for entity

tomcat - java.lang.IllegalArgumentException : Invalid <url-pattern> SolrServlet1 in servlet mapping

jsf - 整个应用程序的单个用户?

javascript - 使用 Javascript 获取 JSF 定义的组件

javascript - 动态改变h :dataTable value in JSF

java - Spring MVC 休息 : static files unaccessible because of url-pattern

jsf - 执行 (Primefaces) 菜单项的 ActionListener 会导致 IllegalStateException

java - HTTP 状态 500 - 提交响应后无法转发

匹配 url 模式的 Node.js