JSF-使用JSF标记

使用JSF标记

基于Facelets技术的JSF页面是一个 XHTML页面,文件扩展名为 .xhtml

1)JSF页面可用html标记,但必须满足:

①所有标记都必须闭合。如<p>开始,</p>结束;不成对的<br/>

②所有的标记名和属性名都必须为小写

③所有的属性值都应用双引号或单引号括起来

 

2)JSF页面主要由JSF标记组成,也可包含一些JSTL(JSP Standard Tag Library)

标记前缀
JSF HTML标记库h
JSF 核心标记库f 
JSF Facelets标记库ui
JSF 复合标记库composite
JSTL 核心标记库c
JSTL函数标记库fn

 

 

 

 

 

 

 

JSF HTML标记库(h):代表某种UIComponnet组件与某个呈现器的一种组合

JSF 核心标记库(f):执行一些与任何特定的呈现包无关的核心动作

JSF Facelets标记库(ui):使用模板时需要的标记,模板封装了页面布局、样式和内容的单个模式,也可以在多个页面中重用这个模板,使页面有一致的外观。

 

3)JSF HTML标记库中标记的使用

对文本域组件标记 h:inputText

       组件名:javax.faces.Input

     呈现器型名:javax.faces.Text

①id的使用

UIViewRoot root=FacesContext.getCurrentInstance().getViewRoot();//获取组件树的根

UIComponent component=root.findComponent("form1:input1");//返回指定客户端标识符的组件对象

form1为h:form的id;input1来自h:inputText的id。

②immediate(处理时期)

输入类组件和动作组件通常可以设置immediate,默认为false。

false:数据(输入)在“处理验证”时被转换和验证;动作事件会在“调用应用”阶段处理。

true:数据的转换、验证以及事件处理会在“应用请求值”立即进行。

备注:请求处理生命周期有 恢复视图、应用请求值(提交动作)、处理验证、更新模型值。调用应用(监听器)、呈现响应。

③rendered(呈现)

通常为一个boolean型EL表达式,JSF框架由rendered值决定组件是否被呈现

如:rendered="#{showReply.page[0] gt 2}"

又如:rendered="#{i==showReply.currentPage}"

④style和styleClass:

为组件的呈现输出指定CSS样式

style:指定CSS样式并作为呈现产生的HTML标记的style属性值;

如:style="margin-left:5px; margin-right:5px"

styleClass:指定CSS样式类并作为呈现产生的HTML标记的class属性值

如:styleClass="font3" 其中font3在CSS文件中为样式类。

⑤value

用于设置组件值。可以为普通的字符串文本,但常为 EL值表达式,使组件值与受管Bean的某个属性绑在一起

如 value="回复主题" 或:value="#{showReply.replys}"

⑥binding(将组件绑定至UIComponent)

如:<h:selectOneMenu id="selectMaterLog" value="..." ...binding="#{Masterlogs.logSelectField}">....</h:selectOneMenu>

binding属性是将h:selectOneMenu这个控件赋值给名称为Masterlogs的JavaBean的logSelectField属性,从而能够在Masterlogs这个JavaBean的方法中获取或者操作h:selectOneMenu这个控件的值

EL值表达式的类型必须与标记代表的组件类型相容

⑦title为该组件呈现产生的标记元素指定标题信息。Web浏览器通常会将该信息以即时提示的方式显示出来。

 

4)基本输入类标记

①标记功能

-h:inputText 文本域,用于接收一行文本

-h:inputSecret 口令域,用于接收一行不含空格的文本,输入时显示“ * ”;

-h:inputTextArea 文本区,用于接收多行文本

-h:inputHidden 隐藏域,允许在表单中隐藏一个数据,以便在表单提交时,该数据能送回带给服务器。

②常用 属性

-size 文本域或口领域的宽度(列数)

-maxlength 文本域或口领域最多可以输入的字符数

-cols、rows 文本区的宽度(列数)和高度(行数)

-disabled 是否禁用(隐藏域除外)。也适用于选择等输入标记、以及动作标记等。

-label 在错误消息中使用的组件名称(隐藏域除外)

-accesskey 指定访问键(隐藏域除外)。ALT+访问键激活当前组件也适用于选择等输入标记、以及动作标记和h:outputLabel

      当h:outputLabel指定访问键,用于按下时,将激活与该标签相关联的组件,如焦点文本域、选中复选框。

-readonly 是否只读(隐藏域除外),也适用于选择等输出标记

-redisplay 指定在呈现是否包含组件值,仅适用于口领域标记。默认为false。

-required 指定用户是否必须输入,默认为true。

-requiredMessage 用户没有填必填时提示的错误消息

-validator 指定一个方法表达式,引用受管bean的一个方法,该方法称为验证方法。一般在“处理验证”阶段被调用。

如: validator="#{inputTopic.validator}"

-validatorMessage 指定验证错误信息,将代替由任何验证器产生的错误信息,在验证出错时显示。

如:validatorMessage="长度不能超出1000个字符"

 

5)基本输出标记

①标记功能

-h:outputText 显示由value指定的文本,需要时可用style和 styleClass指定显示格式

-h:outputLabel 显示一串文本作为输入组件的标签,由for指定相关的输入组件。单击标签时会聚焦相关输入组件

        如<h:outputLabel for="input1" value="标题"/>

-h:outputFormat 显示参数化文本,value:称为消息模板的特殊字符串;{ }中的数字 代表 一个参数,参数值由嵌套于该标记的核心标记f:param的value指定

        如<h:outputFormat value="{0}今年{1}岁,{0}是一名学生。"/>

       <f:param value="LiMing"/>  <f:param value="19"/> </h:outputFormat>

-h:outputLink 呈现一个HTML超链接,单击链接产生请求。value指定目标连接的URL,可为相对URL或者绝对URL。

      若以斜杠(/)开头,则相对web容器目录;

      若不以(/)开头,则相对于当前页面所在路径。

      如<h:outputLink value="/web/faces/resp.xhtml"/>中间内容为超链接文本,可以使用其他标记如h:outputText或h:graphicImage等</h:outputLink>

②常用属性

-escape 是否对特殊字符(如<、>、&)进行转义处理,默认为true。如 <转义&lt   >转义&gt   &转义&amp

    若为false,则被浏览器解释,用于outputText、outputLabel、outputFormat

-target 指定目标资源打开的位置;默认为当前窗口。设为"_brank"则在新窗口打开。也可以指定名称,在指定的窗口或者标签打开。

    用于h:outputlLink、h:form、h:commandLink 和 h:Link标记。

 

6)图像标记

-h:graphicImage 显示一幅图像,属性url指定图像URL;可用width和height设置高度和宽度。

 

7)动作类标记

①标记功能

-h:commandButton 动作按钮

type 按钮类型,默认为submit,产生提交按钮,单击产生postback请求、引发动作事件;如果为reset,不产生HTTP请求,重写状态。

value 按钮的标题

image 图片按钮,设置一个图像的url,为提交按钮。则type和value被忽略。

-h:commandLink 与h:outputLink相比,它也产生一个超链接,即<a>元素,能嵌套outputText和graphicImage指定超链接的文本或图像,也可用value指定超链接文本。

②常用属性

-action 动作方法。 public String<方法名>()   public Object<方法名>

-actionListener 动作监听方法。  public void<方法名>(Action Event)  public void <方法名>()

-target 指定响应内容显示的位置。但是h:commandButton没有这个属性,不过可以在h:form中设置。

 

8)二选一标记(我比较喜欢叫它“选不选标记”)

-h:selectBooleanCheckbox 显示一个复选框。value通常绑定到受管bean的一个布尔型属性上。

如<h:selectBooleanCheckbox id="bc" value="#{index.accpet}"/>

 <h:outputLabel for="bc" value="接受条款?"/>

 

9)单选类标记

①标记功能

-h:selectOneRadio 单选按钮组,单击按钮图标或者标签进行选择

-h:selectOneListbox 单选列表框。size显示选项数(单击滚动条或下拉按钮显示其它选项)。若不指定size,其它选项则并排同时显示。

-h:selectOneMenu 单选菜单(下拉菜单)。无size属性。一次仅显示一个选择。(单击下拉按钮可显示所有选项)

②常用属性

-border 边框,适用于selectOneRadio和selectManyCheckbox

-hideNoselectionOption 当组件被用户激活时,非选择项是否被隐藏。适用于所有选择类标记。

-layout lineDirection(默认线型横向) pageDirection(竖型)。适用于selectOneRadio和selectManyCheckbox

③选项设置

无论单选、多选标记,其选项都由f:selectItem或/和 f:selectItems字标签提供。如:

性别

<h:selectOneRadio value="#{index.gender}">

<f:selectItem itemLabel="男" itemValue="male"/>

<f:selectItem itemLabel="女" itemValue="female"/>

</h:selectOneRadio>

④f:selectItem 指定单个选项,属性有:

-itemLabel 显示的文字(String)

-itemValue 选项值,作为请求参数送往服务器(Object)

-itemDisable 选项是否被禁用(Boolean)

-noSelectionOption 是否为专门的“非选择项”,缺省值为false

-value 组件值(值表达式),指向一个SelectItem实例。

⑤f:selectItems 标记指定一组选项

标记的value必须是指向下面对象之一的值表达式:

-单个SelectItem实例

-SelectItem实例集合

-SelectItem实例数组

-一个映射,其条目的键和值分别代表选项的标签和值。

 

10)多选类标记

①标记功能 

可以选择多个,组件值通常为数组

-h:selectManyCheckbox 复选框组

-h:selectManyListbox 多选列表框,size指定显示的选项数。按住ctrl再单击选择(或取消选择)其余各项。按shift再单击可选连续多项。

-h:selectManyMenu 多选菜单。无size,每次仅显示一项,可选多项

②常用属性

-collectionType 多选组件的value应为数组或集合(Collection)。如果value把绑定在受管bean的某个集合类型属性上,而该集合类型是接口或抽象类(如List、Set等),那么可以用该collectionType属性指定一个相应的具体类型。

-selectedClass、unselectedClass 指定CSS样式类,分别应用于已选与未选的选项显示。仅适用于h:selectManyCheckbox。

 

11)消息标记

JSF在处理请求的可能产生各种消息,包括:

1.标准转换器或自定义转换器在转换组件值类型时产生的错误信息

2.设置了required的组件未获得输入值时产生的错误信息

3.在1.中两种转换器在验证组件值时产生的错误信息

4.由应用代码根据需要自主产生的各种消息

①FacesMessage类

每个消息包含三个属性:概要文本(summary)、详细文本(detail)和严重级别(severity)。用FacesMessage实例表示:

public FacesMessage(){ }无参。一个、两个、三个参数的构造函数(省略不写)。

严重级别(severity)有4种

-FacesMessage.SEVERITY_INFO      信息级别

-FacesMessage.SEVERITY_WARN    警告级别

-FacesMessage.SEVERITY_ERROR  错误级别

-FacesMessage.SEVERITY_FATAL    致命级别

 

FacesContext对象的addMessage方法用于将消息放入队列:

public void abstract addMessage(String clientId,FacesMessage message)

②h:message标记

消息标记,用于显示组件信息 for属性指定组件id。

③h:messges标记

消息组标记,用于显示全局消息和组件消息。

转载于:https://www.cnblogs.com/cuiken/p/8194008.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值