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]-->

【扫地机器人测试】 本测试方案旨在系统性评估扫地机器人的核心功能、性能指标、可靠性及用户体验,验证产品是否符合设计规范、行业标准及市场需求。通过多维度、全场景的测试,精准定位产品缺陷与优化空间,为产品迭代提供数据支撑,确保上市产品的质量稳定性与用户满意度。 阅读详情

相关推荐

遥感常用相关指数和计算方法(植被指数/水体指数/雪和冰指数/矿物指数/地表温度指数/云和阴影指数/农业指数)

遥感常用相关指数和计算方法(植被指数/水体指数/雪和冰指数/矿物指数/地表温度指数/云和阴影指数/农业指数)

m0_64361769的博客 1万+

JSF UIComponent 组件(一)

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

jbossday的专栏 386

【屠龙之术】SAP 欧洲公司 高级合规性报表 FEC

所谓FEC ,其实是法国税务局要求法国的公司,每年要向税务局进行提交的税务报告,这个报告有特殊的格式,进行加密,法国公司要在收到税务局通知以后,及时进行报送,如果不报送,或者报送不合格文件,将面临5000欧的罚款。-----------------------------------------------进入正文----------------------------------------------------------------------有专门的T-code,PPT我就不贴了,我直接截图。

竹大的博客 1960

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

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

smilingleo的专栏 1927

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2813

PCIe Gen4 Switch芯片PM40028调试踩坑实录:从boot引脚设置到串口无输出的诡异问题

本文记录了PCIe Gen4 Switch芯片PM40028的实战调试过程,重点剖析了从boot引脚配置错误导致串口无输出,到使用逻辑分析仪定位并解决启动问题的完整排障思路。文章深入探讨了芯片启动流程、硬件信号测量方法,并总结了高速硬件调试的核心经验与系统性排查清单,为工程师解决类似PCIe Gen4设备调试难题提供实用指南。

i8j9k0l1的博客 251

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

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

Tong1993222的博客 2182

【Educoder作业】※ 数字图像——绿幕抠像

这次作业比上一篇博客基本得多,大多都是基础函数的运用。没啥说的,就整个sizesizesize即可。 T2 获取一个像素 T3 图像反色 T4 修改透明度 ′RGBA′'RGBA'′RGBA′也是一种图像格式 T5 抠图 T6 添加场景 这个主要是pastepastepaste函数里面的maskmaskmask参量没整明白,转载一篇博客供参考。...

JZYshuraK的博客 7571

UIComponent 以及子类的 背景 网格

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

畅所宇言 228

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1021

AI Agent在智能广告投放中的应用

随着互联网的快速发展,广告投放市场变得越来越复杂和竞争激烈。传统的广告投放方式往往难以精准地触达目标受众,导致广告资源的浪费。AI Agent作为一种智能的自动化程序,能够在复杂的环境中自主学习、决策和执行任务。本文章的目的在于深入探讨AI Agent在智能广告投放中的应用,研究如何利用AI Agent提高广告投放的精准度、效率和效果,降低成本。范围涵盖了AI Agent的基本原理、相关算法、在广告投放中的具体应用场景以及实际案例分析等方面。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 617

UIComponent方法介绍

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

全无费话 858

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 147

通过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。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JSF自定义组件(1)

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

MewJavaSea的专栏 634

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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、付费专栏及课程。

余额充值