java - 使用 JSF 从 URL 中删除 Foobar.xhtml

标签 java web-applications tomcat jsf facelets

我已经使用 tomcat 作为应用程序服务器编写了一个 facelets web 应用程序。我的程序有一个 foobar.xhtml,它的 URL 是:

http://localhost:8080/Myapplication/foobar.faces

我可以更改我的应用程序中的某些内容以便链接到:

http://localhost:8080/Myapplication/

..实际上会在 http://localhost:8080/Myapplication/foobar.faces 上呈现我的应用程序?

或者,http://localhost:8080/Myapplication/ 可以吗?被重定向到 http://localhost:8080/Myapplication/foobar.faces

最佳答案

您通常会使用 <welcome-file>web.xml 中输入为了这。但不幸的是,当使用要通过 servlet 传递的虚构 URL(如 FacesServlet)时,这至少在 Tomcat 上无法按预期工作。 . Tomcat 将在转发前扫描磁盘上与确切名称匹配的物理文件。如果它不存在,那么您只会看到默认的 404 错误页面。

使用 /foobar.xhtml作为<welcome-file>也不会工作,因为该页面需要由 FacesServlet 解析让所有的 JSF 东西工作。

解决这个问题的方法之一是放置另一个真正的 /foobar.faces在真实/foobar.xhtml 旁边的文件文件。它不需要填充代码,它可以留空。仅存在物理文件就足以让 Tomcat 打开所需页面作为欢迎页面。

关于java - 使用 JSF 从 URL 中删除 Foobar.xhtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006497/

相关文章:

asp.net - 从ASP.Net WebSite转换为Web Application项目后的MasterType问题

java - 使用反射替换 java.net.URL URLStreamHandlerFactory 是个好主意吗?

apache - 更改 apache tomcat 主页 URL

spring - 将 spring + tomcat webapp 从 mac 迁移到 ubuntu

java - Thymeleaf &lt;input&gt; 日期出现 :pattern 错误

java - 如何使用 Java 应用程序连接到 sybase IQ 服务器

java - 在处置监听器中运行作业时出现 IllegalStateException

java - 限制用户每秒发出有限的请求

tomcat:部署一个通过没有上下文根名称的浏览器访问的webapp

Java:在运行全屏应用程序时使用机器人