鍍金池/ 教程/ HTML/ JSF HTML5友好標(biāo)記
JSF數(shù)據(jù)表(h:dataTable)添加刪除
JSF <h:commandLink>標(biāo)簽
JSF應(yīng)用程序入門示例
JSF數(shù)據(jù)表(ui:repeat)創(chuàng)建表
JSF列表框
JSF數(shù)據(jù)表(h:dataTable)DataModel排序數(shù)據(jù)
JSF復(fù)合組件
JSF <h:inputText>標(biāo)簽
JSF表單組合框
JSF <h:messages>標(biāo)簽
JSF <h:message>標(biāo)簽
JSF轉(zhuǎn)換日期時(shí)間
JSF JDBC連接
JSF <h:inputHidden>標(biāo)簽
JSF多選列表框
JSF <h:inputSecret>標(biāo)簽
JSF自定義轉(zhuǎn)換器
JSF <f:ajax>標(biāo)簽
JSF生命周期
JSF可重定位資源
JSFJSF用戶界面組件模型
JSF <h:attribute>標(biāo)簽
JSF驗(yàn)證器標(biāo)簽
JSF驗(yàn)證字符串長(zhǎng)度
JSF轉(zhuǎn)換器標(biāo)簽
JSF托管bean(Managed Bean)
JSF值變化的事件
JSF UI組件示例
JSF MySQL CURD實(shí)例
JSF數(shù)據(jù)表(h:dataTable)排序數(shù)據(jù)
JSF <h:graphicImage>標(biāo)簽
JSF <f:convertNumber>標(biāo)簽
JSF教程
JSF托管Bean
JSF輸出腳本
JSF <h:outputText>標(biāo)簽
JSF操作事件
JSF驗(yàn)證正則表達(dá)式
JSF數(shù)據(jù)表(h:dataTable)行號(hào)
JSF <h:setPropertyActionListener>標(biāo)簽
JSF注入托管bean實(shí)例
JSF <h:commandButton>標(biāo)簽
JSF Web資源
JSF <h:inputFile>標(biāo)簽
JSF驗(yàn)證浮點(diǎn)數(shù)值范圍
JSF Facelets視圖
JSF是什么?
JSF Facelets模板
JSF的特性(特點(diǎn))
JSF自定義驗(yàn)證器類
JSF單選按鈕
JSF輸出樣式
JSF數(shù)據(jù)表(h:dataTable)更新數(shù)據(jù)
JSF HTML5友好標(biāo)記
JSF表單復(fù)選框(CheckBox)示例
JSF <h:form>標(biāo)簽
JSF Facelets技術(shù)介紹
JSF輸出格式化
JSF <h:inputtextarea>標(biāo)簽
JSF驗(yàn)證整數(shù)范圍
JSF <h:panelGrid>標(biāo)簽

JSF HTML5友好標(biāo)記

JavaServer Faces支持HTML5,允許您直接在網(wǎng)頁(yè)中使用HTML5標(biāo)記。 它還允許您在HTML5元素中使用JavaServer Faces屬性。 JavaServer Faces支持HTML5分為兩類:

  • 直通元素
  • 傳遞屬性

HTML5友好的標(biāo)記功能可通過(guò)渲染的頁(yè)面輸出完成對(duì)Facelets頁(yè)面的控制,而不必將該控件傳遞給組件。 您可以混合和匹配JavaServer Faces和HTML5組件和元素。

使用傳遞元素

它允許您在應(yīng)用程序中使用HTML5標(biāo)簽和屬性。 JSF將其視為與服務(wù)器端UI組件實(shí)例關(guān)聯(lián)的JavaServer Faces組件相當(dāng)。

您必須指定命名空間 http://xmlns.jcp.org/jsf(而不是JavaServer Faces元素)的元素作為直通元素。 在以下示例中,代碼使用短名稱jsf聲明命名空間:

在這里,我們使用JSF格式的HTML5電子郵件類型,它工作友好。 jsf前綴放在id屬性上,以便HTML5輸入標(biāo)簽的屬性被視為Facelets頁(yè)面的一部分。

創(chuàng)建一個(gè)名稱為:Html5FriendlyMarkup 的Web工程,其目錄如下所示 -

以下是文件:index.xhtml 中的代碼 -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
xmlns:h="http://xmlns.jcp.org/jsf/html"  
xmlns:jsf="http://xmlns.jcp.org/jsf"  
>  
<h:head>  
<title>HTML5-Friendly-markup</title>  
</h:head>  
<h:body>  
<h:form>  
<h:outputLabel for="username" value="User Name "/>  
<h:inputText value="#{user.name}"/><br/>  
<h:outputLabel for="email" value="Email ID "/>  
<input type="email" jsf:id="email" name="email" value="#{user.email}"/><br/><br/>  
<h:commandButton action="result.xhtml" value="submit"/>  
</h:form>  
</h:body>  
</html>

以下是文件:User.java 中的代碼 -

import javax.faces.bean.ManagedBean;  
import javax.faces.bean.RequestScoped;  
@ManagedBean  
@RequestScoped  
public class User {  
    String name;  
    String email;  
    public String getName() {  
    return name;  
    }  
    public void setName(String name) {  
    this.name = name;  
    }  
    public String getEmail() {  
    return email;  
    }  
    public void setEmail(String email) {  
    this.email = email;  
    }  
}

以下是文件:result.xhtml 中的代碼 -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
xmlns:h="http://xmlns.jcp.org/jsf/html">  
<h:head>  
<title>Response Page</title>  
</h:head>  
<h:body>  
<h1>  
<h:outputText value="Hello #{user.name}"/>  
</h1>  
<h4><h:outputText value="Your email is: #{user.email}" /></h4>  
</h:body>  
</html>

運(yùn)行 Html5FriendlyMarkup 工程,打開(kāi)瀏覽器輸入以下網(wǎng)址:

http://localhost:8084/Html5FriendlyMarkup/

沒(méi)有錯(cuò)誤應(yīng)該會(huì)看到以下界面 -

寫(xiě)入一些簡(jiǎn)單的信息提交,會(huì)看到以下界面 -

使用傳遞屬性

傳遞屬性允許將不屬于JavaServer Faces屬性的屬性傳遞給瀏覽器。 如果在JavaServer Faces UI組件中指定傳遞屬性,則屬性名稱和值直接傳遞到瀏覽器,而不被JavaServer Faces組件或渲染器解釋。

您必須將JavaServer Faces命名空間用于傳遞屬性,才能在JavaServer Faces組件中前綴屬性名稱。在下面的示例中,將屬性傳遞給HTML5輸入組件。

傳遞屬性示例

創(chuàng)建一個(gè)名稱為:Html5FriendlyMarkup2 的Web工程,其目錄如下所示 -

以下是文件:index.xhtml 中的代碼 -

<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://xmlns.jcp.org/jsf/html"  
      xmlns:f="http://xmlns.jcp.org/jsf/core">  
    <h:head>  
        <title>Pass-Through Attributes</title>  
    </h:head>  
    <h:body>  
        <h:form>  
            <h:outputLabel for="username" value="User Name "/>  
            <h:inputText value="#{user.name}">  
                <f:passThroughAttribute name="type" value="text" />  
            </h:inputText><br/>  
            <h:outputLabel for="email" value="Email ID "/>  
            <h:inputText value="#{user.email}">  
                <f:passThroughAttribute name="type" value="email" />  
            </h:inputText><br/><br/>  
            <h:commandButton action="result.xhtml" value="submit"/>  
        </h:form>  
    </h:body>  
</html>

以下是文件:result.xhtml 中的代碼 -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://xmlns.jcp.org/jsf/html">  
    <h:head>  
        <title>Response Page</title>  
    </h:head>  
    <h:body>  
        <h1>  
            <h:outputText value="Hello #{user.name}"/>  
        </h1>  
        <h4><h:outputText value="Your email is: #{user.email}" /></h4>  
    </h:body>  
</html>

以下是文件:User.java 中的代碼 -


package com.yiibai;

/**
 *
 * @author Maxsu
 */
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class User {

    String name;
    String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

運(yùn)行 Html5FriendlyMarkup2 工程,打開(kāi)瀏覽器輸入以下網(wǎng)址:

http://localhost:8084/Html5FriendlyMarkup2/

沒(méi)有錯(cuò)誤應(yīng)該會(huì)看到以下界面 -

寫(xiě)入一些簡(jiǎn)單的信息提交,會(huì)看到以下界面 -