<分区>
当我尝试打开我的页面时,我有一个空白页面 http://localhost:8084/Gpsi-worked/admin.xhtml但是当我尝试这个http://localhost:8084/Gpsi-worked/faces/admin.xhtml问题出在哪里,我在我的项目中使用模板。
<分区>
当我尝试打开我的页面时,我有一个空白页面 http://localhost:8084/Gpsi-worked/admin.xhtml但是当我尝试这个http://localhost:8084/Gpsi-worked/faces/admin.xhtml问题出在哪里,我在我的项目中使用模板。
最佳答案
那是因为 FacesServlet
映射到 /faces/*
而不是 *.xhtml
的 URL 模式。 FacesServlet
负责完成所有 JSF 工作。所有对 JSF 页面的请求都必须调用 FacesServlet
。然后它将解析 XML 模板中的 Facelets 和 JSF 标记并生成 HTML 代码。右键单击网络浏览器中的空白页面并选择查看源代码。您会看到所有 JSF 标记都没有被解析。网络浏览器不理解 JSF 标签,它只理解 HTML。
为了摆脱/faces/*
路径,您需要更改web.xml
中FacesServlet
的URL 模式> 来自
<url-pattern>/faces/*</url-pattern>
到
<url-pattern>*.xhtml</url-pattern>
唯一的(次要)警告是,如果不调用 FacesServlet
,您将无法再提供纯 .xhtml
文件,但这些文件实际上应该作为 .html
无论如何 ;)
关于java - jsf页面中的空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237224/