当我尝试打开我的页面http://localhost:8084/Gpsi-worked/admin.xhtml时,我有一个空白页面,但当我尝试使用http://localhost:8084/Gpsi-worked/faces/admin.xhtml时问题出在哪里,我在项目中使用模板。
答案 0 :(得分:5)
这是因为FacesServlet
映射到/faces/*
而不是*.xhtml
的网址格式。 FacesServlet
是负责完成所有JSF工作的人。对JSF页面的所有请求都必须调用FacesServlet
。然后它将解析XML模板中的Facelets和JSF标记并生成HTML代码。右键单击Web浏览器中的空白页,然后选择查看源。您将看到所有JSF标记都未解析。 webbrowser不了解JSF标签,它只能理解HTML。
为了摆脱/faces/*
路径,您需要更改
<url-pattern>/faces/*</url-pattern>
到
<url-pattern>*.xhtml</url-pattern>
这有唯一的(次要的)警告,你不能在不调用.xhtml
的情况下提供普通FacesServlet
文件,但这些文件实际上应该作为.html
服务;)
答案 1 :(得分:0)
在web.xml
中,您将指定一个servlet映射,它将查找带有/faces/*
(或者也可能是.faces
)的URL路径,以便将请求发送到{{1} }}。如果您不想要FacesServlet
前缀,请将映射更改为更合适的映射。
答案 2 :(得分:0)
你确定这是一张空白页吗?因为你应该有一个错误,也许如果你看一下空白页面的来源,你可能会看到你的JSF页面未经处理?