JSF之 UIComponent组件介绍

Facelets在JSF框架中的视图构建指南 本文还有配套的精品资源,点击获取 简介:Facelets是JavaServer Faces (JSF)框架的视图构建技术,用于创建企业级Web应用的组件化用户界面。它利用XML基础、可重用组件、模板结构和与JSF的集成,简化了页面布局和组件管理。博客提供了一个Facelets入门和高级特性的全面指南,包括布局文件解析、组件化、模板使用、EL表达式支持以及与JSF的交互细节。... 阅读详情

JSF中的组件树概念尤其重要。组件树大量使用了组合设计模式,

为开发者提供了大量的包括日历,表格,树,列表等标准Web组件。

同时JSF还提供了大量的组件支持类,例如转换器(可以进行类型转换),验证器(进行数据验证),绘制器(不仅仅可以使用HTML来绘制组件)。接下来我们分析一下用户界面组件。

所有组件都要实现javax.faces.component.UIComponent接口。这个接口定义了浏览组件树,和支持Bean交互,管理组件(包括数据验证,数据转换和组件绘制)等任务和方法。

JSF提供了一个组件基类:javax.faces.component.UICompoentBase。它实现了一些基本的默认的组件方法,给开发人员提供了方便,一般来说,你只需要重写特定的方法即可。

JSF使用了适配器模式帮助你使用最少的代码完成大部分工作。

如果你想创建组件,那么有三条路可以走:

直接实现UIComponent接口

继承UIComponentBase类

继承已经存在的UIComponent实现

<!--[if !supportEmptyParas]--> <!--[endif]-->

已经存在的UIComponent组件类主要有如下:

●       UIForm 表示一个输入表单

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UICommand 表示一个可在激活时执行一个动作的命令组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UIOutput 表示一个可显示值的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UIGraphic 表示一个可显示图像的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UIInput 表示一个可获取和显示用户输入的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UIParameter 用于为父组件配置参数值

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UIPanel 表示一个面板(容器)组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UISelectItem 表示选择组件中的一个选择项

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UISelectItems表示选择组件中的多个选择项

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UISelectBoolean表示一个具有boolean值的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UISelectOne 表示一个允许用户在一系列值中选择零个或一个值的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

●       UISelectMany表示一个允许用户在一系列值中选择零个或多个值的组件

<!--[if !supportEmptyParas]--> <!--[endif]-->

事实上,一个JSF组件包括了三个部份:Tag、Component 与Renderer。

Tag就是之前使用的标签,它的目的在于设定Component属性,设定验证器,设定方法绑定等。

<!--[if !supportEmptyParas]--> <!--[endif]-->

Component请求时,每个Component会根据自己的ID值,从请求中取得相应的值,绑定到Bean。当请求来到应用程序时,需要通过解码(decode)来

将HTTP中的内容转变成JSF组件需要的值,相对的,当JSF组件将值转变成HTTP字串资料送到客户端,供客户端显示,就称为编码(encode)。

Component可以自己实现编码,解码,也可以委托Renderer来实现。

<!--[if !supportEmptyParas]--> <!--[endif]-->

Renderer是一个可替换的组件,Component可以搭配不通的Renderer,而不用自定义编码,解码工作,这样Component可以达到重用。

你也可以编写自己的Renderer,如果你对前台的显示有自己独特的要求的话。甚至可以让你的系统在移动设备等不同的平台上应用。

<!--[if !supportEmptyParas]--> <!--[endif]-->

javax.faces.component.UIComponent

自订Component所要继承的父类别,但通常,您是继承其子类别,例如UIInput、UIOutput等等。

<!--[if !supportEmptyParas]--> <!--[endif]-->

javax.faces.webapp.UIComponentTag

自订JSF标签所要继承的父类别,继承它可以帮您省去许多JSF标签处理的细节。

<!--[if !supportEmptyParas]--> <!--[endif]-->

javax.faces.context.FacesContext
包括了JSF相关的请求资讯,您可以透过它取得请求物件或请求参数,或者是。

<!--[if !supportEmptyParas]--> <!--[endif]-->

javax.faces.application.Application物件

包括了一个应用程式所共享的资讯,像是locale、验证器、转换器等等,您可以透过一些 工厂方法 取得相关的资讯。

<!--[if !supportEmptyParas]--> <!--[endif]-->

uniapp 实现RFID识别的实战指南 本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。 阅读详情

相关推荐

STM32驱动GP2Y1010AU0F红外PM2.5传感器:从采样时序到浓度标定

在嵌入式环境监测项目中,模拟传感器输出信号的准确采集是系统可靠性的基石。许多工程师在接触红外散射式粉尘传感器时,常因不了解其特殊的脉冲驱动与采样保持机制,导致ADC读数异常。红外散射原理通过检测颗粒物散射光强来估算粉尘浓度,其输出信号并非稳定直流,而是与LED脉冲同步的短时窗口电压。理解这一时序特征,并掌握在STM32平台上通过定时器与ADC协同完成微秒级精准采样的方法,是获取有效数据的关键。该技术广泛应用于室内空气质量检测、空气净化器控制及DIY环境监测节点等场景。本文以GP2Y1010AU0F为例,详细

weixin_29159127的博客 283

JSF UIComponent 组件(一)

可以说,用户界面组件是JSF的核心。JSF规范中阐述JSF的重点放在用户界面上,是用户界面框架,而不是应用框架(值得仔细思考)。JSF中的组件树概念尤其重要。组件树大量使用了组合设计模式,为开发者提供了大量的包括日历,表格,树,列表等标准Web组件。同时JSF还提供了大量的组件支持类,例如转换器(可以进行类型转换),验证器(进行数据验证),绘制器(不仅仅可以使用HTML来绘制组件)。接下来我们分析...

jbossday的专栏 386

BLHeli_S电调刷Bluejay固件实战:解锁双向DShot与RPM滤波全攻略

本文详细介绍了如何为BLHeli_S电调刷写开源Bluejay固件,以解锁双向DShot协议与RPM滤波等关键功能。内容涵盖硬件兼容性检查、固件刷写全流程、双向DShot启用与OSD报错解决方案,并对48kHz与96kHz PWM频率的选择提供了实战建议,帮助穿越机玩家在不更换硬件的前提下显著提升飞行性能与操控体验。

weixin_29188997的博客 512

JSF in Action读书笔记(二)自定义UIComponent

编写自己的Component的步骤:1、继承一些类或实现一些接口比如UIComponentBase, Render, Converter, Validator等;比如例子中的UIInputDate,就需要扩展UIInput,先定义Family和Type,并在构造函数中指定Render为null(因为不需要Render,而是component自己实现),编写encodeBegin和decode方法(

smilingleo的专栏 1927

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1115

2023东华大学OJ机试题22-70

东华大学计算机考研复试机试22 约瑟夫环223、整除的尾数24、回文质数25、汽水瓶26、阶乘最后的非0位27、算菜价28、 水果价格29、求奇数的乘积30、求最晚和最早日期31、素数32、计算e33 数字之和34 繁殖问题35 奇妙的数字36 整除的尾数37 黑色星期五38 树39 约瑟夫环40 最大与最小41 环42 求数列项43 最高频率44 三艘船45 回文数46 特殊四位数47 最大值48 数列149 修理牛棚50 按要求输出序列51 部落人乘法52 序列53 双重回文数54 等差数列55 人见人

m0_49263811的博客 2598

ET框架学习——UIComponent组件和UI组件

       UI组件继承自Entity,接通了Awake事件,执行Awake方法。内部维护了一个GameObject和一个Dictionary&lt;string, UI&gt; children字典。 Awake(GameObject gameObject)方法,会清空字典,并且给GameObject赋值。        内部还有三个对字典操作的方法。Add(UI ui)方法向字典中添加元素...

Tong1993222的博客 2182

MS1861宏晶微视频显示与控制器芯片:开发资料全解析与应用指南

本文全面解析了宏晶微MS1861视频显示与控制器芯片的核心功能与开发流程。该芯片作为高性能的“视频信号翻译官”,支持HDMI、LVDS等多种输入与MIPI、LVDS等输出,集成强大的图像处理与OSD叠加功能。文章详细介绍了从资料获取、环境搭建到以HDMI转MIPI为例的实战配置与调试技巧,为工业HMI、广告机等应用的开发者提供了完整的应用指南。

weixin_29198045的博客 337

UIComponent 以及子类的 背景 网格

所有继承 UIComponent的组件要想背景为方格.可以使用图片.然后拓展.或者 override updateDisplayList方法如下:     public static const SQUARE_SIZE:Number = 40;//方格的尺寸 /** * 填充背景的方格 */ override protected function updateDisplayLis...

畅所宇言 228

有源滤波电路设计

目录一、低通滤波器1、同相输入低通滤波器(1)一阶低通滤波电路(2)二阶低通滤波电路(压控电压源;Sallen-Key)2、反相输入低通滤波器(1)一阶低通滤波电路(2)二阶低通滤波电路(无限增益多路反馈)二、高通滤波器1、同相输入高通滤波器(1)一阶高通滤波电路(2)二阶高通滤波电路(压控电压源;Sallen-Key)2、反相输入高通滤波电路(1)二阶高通滤波电路(无限增益多路反馈) 一、低通滤波器 1、同相输入低通滤波器 (1)一阶低通滤波电路 即在一阶无源低通滤波器的基础上,加了一个集成运放。 它的

qq_41873236的博客 3万+

Android Audio常见问题分析方法

分析audio dump,确定写给BT的data是否正常,MTK平台Android原生架构分析threadloop write节点,高通平台分析QXDM 1586节点,从dump确定问题大概位置。分析systrace 确定性能。AudioFocus状态(用于播放或者音量异常的情况)。AudioTrack是否正常创建bt连接是否正常通路异常,setMode,setSpeakerphoneOn等都会影响设备选择,sco调用流程是否正常。

一条老狗的博客 2388

UIComponent方法介绍

flex中的架构,UIComponent类的继承关系 UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject 2、为什么使用失效机制(invalidation mechanism) 一种情况是,当设置了组件的多个属性后,比如Button 控件的label 和i...

全无费话 858

基于改进Unet的多场景水果图像分割与分类研究

本文针对复杂场景下的水果图像分割问题,提出了一种改进Unet模型。通过构建包含8类水果、3种成熟度及多种干扰场景的数据集,采用ResNet50与MobileNetV3作为骨干网络,并在跳跃连接层集成CBAM注意力机制。实验表明,改进模型在测试集上达到91.6%的mIoU,推理速度提升23%,特别在重叠水果和低光照场景表现突出。研究为农业视觉检测提供了有效解决方案。

AI的内部世界的博客 304

通过uiComponent来在页面访问jsf组件的属性

  &lt;h:dataTable id="lineItemTable" var="lineItem" value="#{orderHome.lineItems}"&gt; &lt;h:column&gt; Row: #{uiComponent['lineItemTable'].rowIndex} &lt;/h:column&gt; ...&lt;/h:dataTable

yourenyouyu的专栏 368

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JSF自定义组件(1)

刚接触,只是把一些注意的地方记录下来自定义组件的常用类javax.faces.component.UIComponent自定义Component所要继承的父类,但通常,您是继承其子类,例如UIInput、UIOutput等等。javax.faces.webapp.UIComponentTag自定义JSF标签所要继承的父类,继承它可以帮您省去许多JSF标签处理的细节。javax.faces.

MewJavaSea的专栏 634

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JSF自定义组件开发

http://www.blogjava.net/huliqing/archive/2008/03/14/186343.html 详细分析一个JSF组件的制作过程 以下是一个JSF组件所需的几个文件,涉及约5(包括js文件)个文件,主要文件两个(针对JSF1.2) 1.UIComponent 用于渲染组件自身,简单一点就是渲染html代码。(也可以使用Renderer类进行独立渲染) ...

freesky_zh 338

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jsf UIComponent组件接口详细注释说明(jsf1.1规范)

UIComponent实现了StateHolder接口,StateHolder接口表示组件具有了状态。 StateHolder接口中常用到saveState,restoreState两个方法,在开发自定义组件的时候,需要实现它们,具体使用上经常是把 你的组件中全局变量进行状态化,就是在Object[]中定义它们,jsf在恢复和保存两个阶段分别调用组件的这两个方法,把页面的...

weixin_33923762的博客 280

自定义JSF组件

自定义JSF组件&lt;o:p&gt;&lt;/o:p&gt; 个人感觉,写一个jsf的组件比jsp的标签要复杂得多,因为jsp的标签,只有生成html代码的功能,jsf组件还有如增加事件,增加效验,返回用户反馈的值。等等!一个组件一般是分三部分,扩展UIComponent、定义标签、定义渲染器、。现在我就以一个最简单的例子,制作一个输出CLOB的组件来说明一下组件的建立的基本步骤&lt;o:p&...

guoshiguang的专栏 291

JSF2自定义组件编程系列 第二部分

第二部分 有独立Renderer的Noncomposite Component <verse> 通常一个UI Component包含了两个部分:Behavior和Renderer.两者最好能够分别实现,UIComponent类用来实现Behavior,比如处理事件,通过EL绑定属性等等。专门实现一个Renderer类来负责Encoding和Decoding。En...

136

JSF2自定义组件编程系列 第三部分

JSF2 自定义组件

Dean Chen的专栏 5835

JSF2 中的binding的用法

我们都知道,JSF2中页面上的每一个组件的实现包括一个UIComponent类,一个Tag标签类,和一个Render向页面解析的类。而页面上的每一个组件的binding属性就是将页面的标签绑定到一个UIComponent实例,如果得到了这个实例,我们就可以对这个实例做各种各样的操作,比如修改value等等,等response完成后,修改的值就会反映在页面上。例如,我们在ManagedBean中有俩...

iteye_12659的博客 245

自定义开发具有Ajax功能的JSF组件

JSF 组件由两部分构成:组件和渲染器。JSF组件类定义UI组件的状态和行为;渲染器定义如何从请求读取组件、如何显示组件——通常通过HTML渲染。渲染器把组件的值转换成适当的标记。事件排队和性能验证发生在组件内部。

待定的专栏 1264

JSF组件Hello world例程

本文只是使用一个简单的例子来示范一个JSF的Hello world级数的组件的编写过程,不进行原理描述。 步骤如下: 1. 扩展UIComponent 1.1. 建立UIComponent扩展类 1.2. 保存组件状态 1.3. 在faces-config.xml登记组件 2. 定义渲染器 2.1. 覆盖encode和decode 2.2. 在faces-config.xml登记渲染器 3. 定制...

base 124

JSF2自定义组件编程系列 第一部分

序言 本文起因是因为使用PrimeFaces,既惊叹于炫酷的各种UI Components,又因为遇到困难但是社区很少支持而苦恼。回想使用JSF的这些年,从ICEFaces到PrimeFaces,JSF的开源社区都 忙于商业支持,而很少对free的用户进行友好及时的支持。 <<The Complete Reference-Java Server ...

74
上一篇: Infor新型商业模式
下一篇: jsf myface t标签
facepp
博客等级 码龄22年 342粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值