JSF html標(biāo)簽
Jsf提供了一套標(biāo)準(zhǔn)的html標(biāo)簽。可以讓您搭配JSF組件輸出HTML文件,標(biāo)準(zhǔn)的HTML Renderer Kit主要包括了幾個(gè)類別:
- 輸出(Outputs) 其名稱以output作為開頭,作用為輸出指定的信息或綁定值。
- 輸入(Inputs) 其名稱以input作為開頭,其作用為提供使用者輸入字段。
- 命令(Commands) 其名稱以command作為開頭,其作用為提供命令或鏈接按鈕。
- 選擇(Selections) 其名稱以select作為開頭,其作用為提供用戶選項(xiàng)的選取。
- 表格 (Table) 與dataTable相關(guān),用于生成表格
- 其它 包括了form、message、messages、graphicImage等等未分類的標(biāo)簽。
屬性名稱 |
適用 |
說(shuō)明 |
id |
所有組件 |
可指定id名稱,以讓其它標(biāo)簽或組件參考 |
binding |
所有組件 |
綁定至UIComponent |
rendered |
所有組件 |
是否顯示組件 |
styleClass |
所有組件 |
設(shè)定Cascading stylesheet (CSS) |
value |
輸入、輸出、命令組件 |
設(shè)定值或綁定至指定的值 |
valueChangeListener |
輸入組件 |
設(shè)定值變事件處理者 |
converter |
輸入、輸出組件 |
設(shè)定轉(zhuǎn)換器 |
validator |
輸入組件 |
設(shè)定驗(yàn)證器 |
required |
輸入組件 |
是否驗(yàn)證必填字段 |
immediate |
輸入、命令組件 |
是否為立即事件 |
輸出類的標(biāo)簽包括了outputLabel、outputLink、outputFormat與 outputText
分別舉例說(shuō)明如下:
- outputLabel
產(chǎn)生<label> HTML標(biāo)簽,使用for屬性指定組件的client ID,例如:
<h:inputText id="user" value="#{user.name}"/>
<h:outputLabel for="user" value="#{user.name}"/>
這會(huì)產(chǎn)生像是以下的html:
<input id="user" type="text" name="user" value="guest" />
<label for="user">
- outputLink
產(chǎn)生<a> HTML標(biāo)簽,例如:
<h:outputLink value="../index.jsp"/>
value所指定的內(nèi)容也可以是JSF EL綁定。
- outputFormat
產(chǎn)生指定的文字信息,可以搭配<f:param>來(lái)設(shè)定信息的參數(shù)以格式化文本信息,例如:
<f:loadBundle basename="messages" var="msgs"/>
<h:outputFormat value="#{msgs.welcomeText}">
<f:param value="Hello"/>
<f:param value="Guest"/>
</h:outputFormat>
如果您的messages.properties包括以下的內(nèi)容:
welcomeText={0}, Your name is {1}.
則{0}與{1}會(huì)被取代為<f:param>設(shè)定的文字,最后顯示的文字會(huì)是:
Hello, Your name is Guest.
另一個(gè)使用的方法則是:
<h:outputFormat value="{0}, Your name is {1}.">
<f:param value="Hello"/>
<f:param value="Guest"/>
</h:outputFormat>
- outputText
簡(jiǎn)單的顯示指定的值或綁定的信息,例如:
<h:outputText value="#{user.name}"/>
輸入類標(biāo)簽包括了inputText、inputTextarea、inputSecret、 inputHidden
分別舉例說(shuō)明如下:
- inputText
顯示單行輸入字段,即輸出<input> HTML標(biāo)簽,其type屬性設(shè)定為text,例如:
<h:inputText value="#{user.name}"/>
- inputTextarea
顯示多行輸入文字區(qū)域,即輸出<textarea> HTML標(biāo)簽,例如:
<h:inputTextarea value="#{user.command}"/>
- inputSecret
顯示密碼輸入字段,即輸出<input> HTML標(biāo)簽,其type屬性設(shè)定為password,例如:
<h:inputSecret value="#{user.password}"/>
您可以設(shè)定redisplay屬性以決定是否要顯示密碼字段的值,默認(rèn)是false。
- inputHidden
隱藏域,即輸出<input> HTML標(biāo)簽,其type屬性設(shè)定為hidden,隱藏域的值用于保留一些信息于客戶端,以在下一次發(fā)送窗體時(shí)一并送出,例如:
<h:inputHidden value="#{user.hiddenInfo}"/>