gpt4 book ai didi

html - 如何将 html5 与 jsf 2 和 facelets 一起使用?

转载 作者:可可西里 更新时间:2023-11-01 13:35:39 24 4
gpt4 key购买 nike

我正在尝试在 Glassfish 3.1.2 服务器上将 HTML5 文档类型与 jsf 2.1 和 Facelets 结合使用。

我看到很多地方我们可以用 html5 文档类型替换 xhtml 文档类型

 <!DOCTYPE html>

并在 -tag 中保留 xhtml 的 xmlns。在一些论坛上,他们说就是这样。但事实并非如此,至少 Firefox 不同意,因为它将页面呈现为“HTML 专有”而不是 HTML5。

似乎没有教程考虑 html 页面文件扩展名?这是浏览器关心的事情吗?我试图将其从 *.xhtml 更改为 *.html,从 -tag 中删除 xhtml 命名空间,并在 web.xml 中更改

 <context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>

 <context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.html</param-value>
</context-param>

并为 html 添加了 servlet 映射。这根本不起作用。

好的,然后我将所有内容恢复为默认值 (xhtml/facelets),仅替换了 doctype-tag 并删除了引用 xhtml 的 xmlns(从所有文件/模板中)。现在我收到很多警告,例如:

 Warning: This page calls for XML namespace declared with prefix li but no taglibrary   exists for that namespace.
Warning: This page calls for XML namespace declared with prefix li but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix li but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix body but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix ul but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix form but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix a but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix a but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix a but no taglibrary exists for that namespace.
Warning: This page calls for XML namespace declared with prefix a but no taglibrary exists for that namespace.

好吧,这看起来不太乐观。在 web.xml 中,我将项目阶段从开发更改为生产。

 <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>

警告消失了,w3c 的验证器说这是有效的 html5。

有人对此有更好的解决方案吗? jsf/facelets 是否要求文件的扩展名为 xhtml?

最佳答案

Warning: This page calls for XML namespace declared with prefix (...) but no taglibrary exists for that namespace.

您需要将定义 HTML 元素的 XML 命名空间声明为全局 XML 命名空间。

也就是说,

<html xmlns="http://www.w3.org/1999/xhtml">

关于html - 如何将 html5 与 jsf 2 和 facelets 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com