HTML5-友好标记

2024 年 8 月 29 日 | 阅读 3 分钟

JavaServer Faces 支持 HTML5,允许您直接在网页中使用 HTML5 标记。它还允许您在 HTML5 元素中使用 JavaServer Faces 属性。JavaServer Faces 对 HTML5 的支持分为两类

  • 直通元素
  • 直通属性

HTML5-友好标记功能提供了 Facelets 页面对渲染页面输出的完全控制,而不是将此控制传递给组件。您可以混合和匹配 JavaServer Faces 和 HTML5 组件及元素。


使用直通元素

它允许您在应用程序中使用 HTML5 标签和属性。 JSF 将其视为等效于与服务器端 UIComponent 实例关联的 JavaServer Faces 组件。

您必须指定命名空间 http://xmlns.jcp.org/jsf 使非 JavaServer Faces 元素的元素成为直通元素。 在以下示例中,代码使用简称 jsf 声明命名空间

// index.xhtml

在这里,我们在 JSF 表单中使用 HTML5 email 类型,并且它工作正常。 jsf 前缀放置在 id 属性上,以便 HTML5 input 标签的属性被视为 Facelets 页面的一部分。

// User.java

// response.xhtml

输出

// 首页

JSF Html 5 friendly makeup 1

// 响应页面

JSF Html 5 friendly makeup 2

下表显示了直通元素如何呈现为 Facelets 标签。

HTML5 元素名称标识属性Facelets 标签
ajsf:actionh:commandLink
ajsf:actionListenerjsf:actionListener
ajsf:valueh:outputLink
ajsf:outcomeh:link
bodyh:body
buttonh:commandButton
buttonjsf:outcomeh:button
formh:form
headh:head
imgh:graphicImage
输入type="button"h:commandButton
输入type="checkbox"h:selectBooleanCheckbox
输入type="color"h:inputText
输入type="date"h:inputText
输入type="datetime"h:inputText
输入type="datetime-local"h:inputText
输入type="email"h:inputText
输入type="month"h:inputText
输入type="number"h:inputText
输入type="range"h:inputText
输入type="search"h:inputText
输入type="time"h:inputText
输入type="url"h:inputText
输入type="week"h:inputText
输入type="file"h:inputFile
输入type="hidden"h:inputHidden
输入type="password"h:inputSecret
输入type="reset"h:commandButton
输入type="submit"h:commandButton
输入type="*"h:inputText
labelh:outputLabel
linkh:outputStylesheet
scripth:outputScript
select (选择)multiple="*"h:selectManyListbox
select (选择)h:selectOneListbox
textareah:inputTextArea

使用直通属性

通过属性允许您将不是 JavaServer Faces 属性的属性传递给浏览器。 如果您在 JavaServer Faces UIComponent 中指定了一个直通属性,则该属性名称和值将直接传递到浏览器,而不会被 JavaServer Faces 组件或渲染器解释。

您必须使用 JavaServer Faces 命名空间才能通过属性为 JavaServer Faces 组件中的属性名称添加前缀。 在下面的示例中,我们正在将属性传递到 HTML5 input 组件。

直通属性示例

// index.xhtml

// User.java

// response.xhtml

输出

索引页

JSF Html 5 friendly makeup 3

响应页面

JSF Html 5 friendly makeup 4
下一个主题JSF JDBC 连接