栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaServer Faces 2.2和HTML5支持,为什么仍在使用XHTML

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaServer Faces 2.2和HTML5支持,为什么仍在使用XHTML

好像几年前在XHTML宣传过多时一样,您误解了XHTML的目的。长话短说:检查我们的XHTMLWiki页面。仔细阅读。简而言之,Facelets完全不关心生成的HTML输出中使用的doctype。您可以完美地在Facelets模板中声明HTML5文档类型。

确实不幸的是,Netbeans默认情况下使用XHTMLdoctype准备文档,而HTML5如今是推荐的doctype。我不使用Netbeans,但是在Eclipse中,您可以轻松地编辑这些模板,甚至创建自己的模板。您可以将整个XHTML文档类型替换为HTML5文档类型。您可以通过IDE首选项中的_Web»HTML文件»编辑器»模板_ 来查找/创建这些模板。

请注意,JSF
2.2中的HTML5支持与能够专门支持HTML5文档类型无关。相反,即使使用旧版JSP,所有JSF版本都支持此功能。JSP和Facelets是允许您生成HTML输出的视图技术,可以完美地将HTML5用作HTML5。以下紧密相关的答案也对此进行了详细说明:是否可以将JSF+ Facelets与HTML 4/5一起使用?

相反,JSF 2.2中的HTML5支持涵盖了定义自定义JSF组件属性并将自定义HTML元素转换为JSF组件的可能性。在JSF
2.1及更高版本中,这是不可能的。

data-xxx
默认JSF渲染器将忽略所有自定义JSF组件属性(包括HTML5推荐的属性)。另请参见以下相关答案:JSF不呈现自定义HTML标记属性。在JSF
2.2中,您可以通过新的
http://xmlns.jcp.org/jsf/passthrough
名称空间轻松地指定自定义属性,如下所示:

<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">...<h:inputText ... a:autocorrect="off" />

这最终将由

<h:inputText>
不支持的属性
autocorrect
最终实际包含在生成的HTML输出中。请注意,我使用XML名称空间前缀
a
(“attribute”)而不是Java EE教程中
p
所示的那样,否则它将与
p
PrimeFaces的默认XML名称空间前缀冲突。

将自定义HTML元素(包括HTML5元素)转换为JSF组件仅需指定

jsf
诸如的属性即可
jsf:id

<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">...<header jsf:id="header">...</header><main jsf:id="main">...</main><footer jsf:id="footer">...</footer>

那些被掩盖的将变成

UIPanel
(如
<h:panelGroup>
)。是的,它们在例如中是可引用的
<f:ajax render>

换句话说,“ HTML5支持”再次是“自定义属性支持”的另一个流行词。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号