Jsf提供了一套标准的html标签。可以让您搭配JSF组件输出HTML文件,标准的HTML Renderer Kit主要包括了几个类别:
- 输出(Outputs) 其名称以output作为开头,作用为输出指定的信息或绑定值。
- 输入(Inputs) 其名称以input作为开头,其作用为提供使用者输入字段。
- 命令(Commands) 其名称以command作为开头,其作用为提供命令或链接按钮。
- 选择(Selections) 其名称以select作为开头,其作用为提供用户选项的选取。
- 表格 (Table) 与dataTable相关,用于生成表格
- 其它 包括了form、message、messages、graphicImage等等未分类的标签。
属性名称 | 适用 | 说明 |
id | 所有组件 | 可指定id名称,以让其它标签或组件参考 |
binding | 所有组件 | 绑定至UIComponent |
rendered | 所有组件 | 是否显示组件 |
styleClass | 所有组件 | 设定Cascading stylesheet (CSS) |
value | 输入、输出、命令组件 | 设定值或绑定至指定的值 |
valueChangeListener | 输入组件 | 设定值变事件处理者 |
converter | 输入、输出组件 | 设定转换器 |
validator | 输入组件 | 设定验证器 |
required | 输入组件 | 是否验证必填字段 |
immediate | 输入、命令组件 | 是否为立即事件 |
输出类的标签包括了outputLabel、outputLink、outputFormat与 outputText
分别举例说明如下:
- outputLabel
产生<label> HTML标签,使用for属性指定组件的client ID,例如:
<h:inputText id="user" value="#{user.name}"/> <h:outputLabel for="user" value="#{user.name}"/>
这会产生像是以下的html: <input id="user" type="text" name="user" value="guest" /> <label for="user">
- outputLink
产生<a> HTML标签,例如:
<h:outputLink value="../index.jsp"/> value所指定的内容也可以是JSF EL绑定。
- outputFormat
产生指定的文字信息,可以搭配<f:param>来设定信息的参数以格式化文本信息,例如:
<f:loadBundle basename="messages" var="msgs"/> <h:outputFormat value="#{msgs.welcomeText}"> <f:param value="Hello"/> <f:param value="Guest"/> </h:outputFormat> 如果您的messages.properties包括以下的内容: welcomeText={0}, Your name is {1}. 则{0}与{1}会被取代为<f:param>设定的文字,最后显示的文字会是: Hello, Your name is Guest. 另一个使用的方法则是: <h:outputFormat value="{0}, Your name is {1}."> <f:param value="Hello"/> <f:param value="Guest"/> </h:outputFormat>
- outputText
简单的显示指定的值或绑定的信息,例如:
<h:outputText value="#{user.name}"/>
输入类标签包括了inputText、inputTextarea、inputSecret、 inputHidden
分别举例说明如下:
- inputText
显示单行输入字段,即输出<input> HTML标签,其type属性设定为text,例如:
<h:inputText value="#{user.name}"/>
- inputTextarea
显示多行输入文字区域,即输出<textarea> HTML标签,例如:
<h:inputTextarea value="#{user.command}"/>
- inputSecret
显示密码输入字段,即输出<input> HTML标签,其type属性设定为password,例如:
<h:inputSecret value="#{user.password}"/> 您可以设定redisplay属性以决定是否要显示密码字段的值,默认是false。
- inputHidden
隐藏域,即输出<input> HTML标签,其type属性设定为hidden,隐藏域的值用于保留一些信息于客户端,以在下一次发送窗体时一并送出,例如:
<h:inputHidden value="#{user.hiddenInfo}"/>