博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java EE 7精粹》—— 3.7 服务器和客户端扩展点
阅读量:6122 次
发布时间:2019-06-21

本文共 1420 字,大约阅读时间需要 4 分钟。

本节书摘来异步社区《Java EE 7精粹》一书中的第3章,第3.7节,作者:【美】Arun Gupta,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.7 服务器和客户端扩展点

转换器、验证器和监听器是服务器端的附属对象,用于为页面上的组件添加更多的功能。行为是客户端的扩展点,可以使用行为定义的脚本增强组件的渲染内容。

3.7.1 转换器

转换器用于把组件中输入的数据从一种格式转换为另一种格式(例如,string到number)。JSF提供了几种内置的转换器,如f:convertNumber和f:convertDateTime。他们可应用于任何可编辑的组件:

0530cc23ee98f17dda15fd59eff08c60960499dc

在这段代码中,文本框中输入的文本将被转换为一个整数,如果文本不能转换,则抛出一条错误信息。

可以很容易地创建自定义的转换器:

cfc20993787d69a3d0bf5cd476642fc627b94dab

在这段代码中,方法getAsObject和getAsString用于执行模型数据对象和适于页面渲染表述的字符串对象之间的,对象到字符串和字符串到对象的转换。这个POJO实现了Converter接口,同时还标有@FacesConverter注解。这样的转换器就可以在JSF页面中使用:

f7c976910cb31289ef0b23f02ab2d425fd49311e

@FacesConverter的value属性值一定要和converterId属性值匹配。

3.7.2 校验器

校验器用于验证输入组件接收的数据。JSF提供了几种内置的验证器,如f:validateLength和f:validateDoubleRange。这些验证器可应用于任何可编辑的组件:

```在这段代码中,输入的文本长度验证为1到10个字符之间。如果长度超出规定的范围,抛出一条错误消息。可以很容易地创建自定义的验证器:
在这段代码中,如果待验证的值验证成功,方法返回。否则,抛出异常ValidatorException。这个验证器可以应用于任何可编辑的组件:
@FacesValidator的value属性值一定要匹配这里的f:validator的id属性值。JSF还提供了对Bean验证(Bean Validation)定义的约束的内置集成。除了在Bean中放置约束注解,没有额外的工作需要开发人员来做,因为违反约束的错误信息会自动转换成FacesMessage并显示给最终用户。当验证特定组件时,f:validateBean可以指定validationGroups以指示哪个验证组应被考虑在内。这将在第11章中进行详细说明。####3.7.3 监听器监听器用于监听组件上的事件。事件可以是值发生变化、按钮被点击、链接被点击,或者发生了其他情况。监听器可以是托管Bean的方法或是Bean类本身。ValueChangeListener可以注册到任何可编辑的组件上:
在这段代码中,相关的表单提交时,User类中的nameUpdated方法被调用。可以通过实现ValueChangeListener接口创建一个类级别的监听器,然后使用f:valueChangeListener标签在页面中指定该监听器。####3.7.4 行为与转换器、验证器和监听器不同,行为用于增强其客户端功能,通过为组件声明附属脚本来实现。例如,f:ajax定义为一个客户端行为。客户端行为还允许执行客户端验证、客户端日志记录、显示工具提示,以及其他类似的功能。

转载地址:http://dnzua.baihongyu.com/

你可能感兴趣的文章
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>
Android打包常见错误之Export aborted because fatal lint errors were found
查看>>
Tar打包、压缩与解压缩到指定目录的方法
查看>>
新手如何学习 jQuery?
查看>>
配置spring上下文
查看>>