PrimeFaces不渲染

PrimeFaces不渲染,第1张

PrimeFaces不渲染

由于您

/index.xhtml
用作欢迎文件,因此您还应该将FacesServlet映射到该扩展名

如果不需要现有的前缀映射,请替换为:

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

否则,只需添加

*.xhtml
模式即可,最终结果是:

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

请注意,您几乎总是希望在

*.xhtml
那里进行映射,以防止将Facelets的源代码公开。

更新:

关于.jsf和.xhtml之间的区别:

.jsf
是默认映射之一(如果您在JSF
2.1中根本没有声明FacesServlet,那么您将获得它)。它源于磁盘上物理文件具有的扩展名(.jsp或.xhtml)与URL中使用的扩展名之间的区别。

不幸的是,这些在历史上是不同的,因为JSF是一种附加技术,必须通过单独的显式Servlet(Faces
Servlet)进行。纯JSP从来没有此限制,因为它是内置的。JSF页面最初只是在JSP中编写的,因此,如果您仅在URL请求中使用.jsp,则该容器将直接转到JSP并跳过Faces
Servlet。

因此,必须为此发明一种解决方法,那就是将Faces Servlet映射到

*.jsf
,然后Faces
Servlet将直接定向到JSP文件,该文件
.jsp
在磁盘上仍具有扩展名。

我个人认为

*.xhtml
*.xhtml
映射简单是唯一可行的即开即用选项,但是由于向后兼容,JSF似乎无法再将其设置为默认选项。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5475902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存