NetBeans中JSF应用开发(5)

创建自定义验证器
如果标准的JSF验证器不能满足您的要求,你可以编写自己的验证器。在我们的例子中,我们将编写一个验证器来验证一个字符串是否是一个合法的email。要创建一个自定义验证器,需要创建一个实现javax.faces.validator.Validator接口的类,并在faces-config.xml中配置,可以通过<f:validator>标记来使用验证器。
1. 右键点击工程节点,然后选择New > Java Class,把类命名为EmailValidator,把这个类放在包astrologer.validate中,然后点击Finish。
2. 在类的声明中,实现Validator,如下:
public class EmailValidator implements Validator {
3. 使用提示来实现validate方法。
4. 修改方法的签名,然后增加下面的代码:
 public void validate(FacesContext facesContext,
 UIComponent uIComponent, Object value) throws ValidatorException {
 //Get the component's contents and cast it to a String
 String enteredEmail = (String)value;
 //Set the email pattern string
 Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
 //Match the given string with the pattern
 Matcher m = p.matcher(enteredEmail);
 //Check whether match is found
 boolean matchFound = m.matches();
 if (!matchFound) {
 FacesMessage message = new FacesMessage();
 message.setDetail("Email not valid - The email must be in the format 
<!--
var user = "&#121;&#111;&#117;&#114;&#110;&#97;&#109;&#101;";
var domain = "&#121;&#111;&#117;&#114;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#99;&#111;&#109;";
var at = "&#x40;";
document.write(user + at + domain);
//-->
yourname
@
yourdomain.com
");
 message.setSummary("Email not valid - The email must be in the format 
<!--
var user = "&#121;&#111;&#117;&#114;&#110;&#97;&#109;&#101;";
var domain = "&#121;&#111;&#117;&#114;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#99;&#111;&#109;";
var at = "&#x40;";
document.write(user + at + domain);
//-->
yourname
@
yourdomain.com
");
 message.setSeverity(FacesMessage.SEVERITY_ERROR);
 throw new ValidatorException(message);
 }
 }
5. 使用Alt+Shift+F 添加必须的import语句。(您应该选择引入java.util.regex.Matcher, java.util.regex.Pattern and javax.faces.application.FacesMessage.)
6. 打开faces-config.xml,然后添加下面的代码:
 ...
 </application>
 <validator>
 <validator-id>astrologer.EmailValidator</validator-id>
 <validator-class>astrologer.validate.EmailValidator</validator-class>
 </validator>
</faces-config>
7. 打开greeting.jsp,然后添加email域:
 ...
 <p>Enter your name: <h:inputText value="#{UserBean.name}"
 id="name" required="true"/>
 <h:message for="name" /></p>
 <p>Enter your email: <h:inputText value="email"
 id="email" required="true">
 <f:validator validatorId="astrologer.EmailValidator" />
 </h:inputText>
 <h:message for="email" /></p>
 <p>Enter your birthday: <h:inputText value="#{UserBean.birthday}"
 id="birthday" required="true">
 ...
8. 运行工程,如果你输入了一个无效的email,你将会得到下面的错误:
关于自定义验证器参考书上188页。
书:《Java EE 5实用教程》
保姆级教程:用Verilog手把手实现一个MIPI CSI-2 D-PHY接收器(附PPI接口时序详解) 本文提供了一份详细的Verilog实现MIPI CSI-2 D-PHY接收器的教程,重点解析了PPI接口时序和deskew数据对齐技术。通过模块划分、时钟域处理、状态机设计和错误恢复机制等实战内容,帮助开发者掌握高速数据接收的核心技术,适用于嵌入式视觉系统开发。 阅读详情

相关推荐

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7180

NetBeans中JSF应用开发(2)

 目标:在JSF应用中使用管理Bean在上一节中,我们使用JSF组件创建了一个简单的web应用。但是,我们的Web应用还不能做任何有意义的事情。为了丰富我们的JSF应用的功能,可以建立辅助Bean(Backing Bean)与UI组件的关联。辅助Bean又称为JSF管理Bean,是一个普通的JavaBean组件,但是他们的属性和方法可以供JSF组件访问。在我们的例子中,我们将创建一个U

李绪成的一亩三分地 3501

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2009

NetBeans中JSF应用的开发(3)

 目标:使用标准的验证器和转换器设置某个域为必填的首先我们需要做的是确保用户为name域输入一些信息,我们可以通过使用inputText组件的required属性轻松做到。1.       打开greeting.jsp,然后修改inputText组件如下: Enter your name:          id="name" required="true"/>

李绪成的一亩三分地 2603

ADS学习笔记 1. 功率放大器设计

基于ADS2023 update2的学习笔记1.功率放大器设计

u014087103的博客 1万+

【Python学习日记:PySide6】【持续更新】

说明:PySide6 是 Qt for Python 的一部分,是一个 Python 绑定库,可以用来创建跨平台的 GUI 应用程序。它将 Qt 框架的丰富功能带到了 Python 环境中,允许开发者使用 Python 编写 GUI 应用程序。

XLQ的博客 8047

NetBeans中JSF应用开发(6)

 创建自定义转换器尽管使用必填域和转换器进行验证非常简单,但是也非常有限。例如,验证器可以验证生日域是一个有效的日期,但是不能验证日期是之前的日期。为了调整日期验证的方式,我们将创建一个自定义验证器。我们的验证器将验证日期的格式是正确的并且是过去的日期。如果遇到错误,验证器将显示相应的消息。要创建一个自定义转换器,你需要创建一个实现javax.faces.converter.C

李绪成的一亩三分地 2147

C#粘包和分包问题及解决方法

一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解:  下面对上面的图进行解释:  1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。  2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲...

weixin_42033401的博客 7767

NetBeans中JSF应用开发(1)

 这是JSF技术系列讲座的第1个,整个讲座包括两大部分,第1部分是在NetBeans中的开发过程,第二部分是JSF相关技术的全面介绍。JavaServer Faces是Web应用中构建用户接口组件的标注Java API。可以把JSF框架想象成充满随时可以使用的组件的工具箱,这些组件可以在Web应用中快速和方便的重用。这些组件可能是简单的,例如存取用户数据的输入框,可能非常复杂,例如使用弹出

李绪成的一亩三分地 6567

R语言数据可视化:绘制世界地图的两种方案

本文介绍了两种使用R语言绘制世界地图的方案:包含边界边框和不包含边界边框。无论您选择哪种方案,使用ggplot2包和相关的地理数据包,我们可以轻松地绘制出漂亮的世界地图。R语言提供了丰富的包和函数,使我们能够轻松地绘制世界地图,并根据需求添加边界边框。在本文中,我将介绍两种绘制世界地图的方案:一种包含边界边框,一种不包含边界边框。在上述代码中,我们使用了与方案一相同的数据准备和地图绘制步骤,但省略了添加边界边框的代码。函数的调用,我们可以绘制不包含边界边框的世界地图。方案二:绘制不包含边界边框的世界地图。

CodeMaven的博客 2226

Hadoop在大数据领域的电商数据分析案例

随着电商行业的迅猛发展,每天都会产生海量的数据,如用户浏览记录、购买行为、商品信息等。如何从这些数据中提取有价值的信息,为电商企业的决策提供支持,成为了电商企业面临的重要问题。Hadoop作为一个开源的分布式计算平台,具有高可靠性、高扩展性和高效性等特点,能够很好地处理大数据。本文的目的就是通过实际案例,详细介绍Hadoop在电商数据分析中的应用,范围涵盖了从数据采集、存储到分析的整个流程。本文首先介绍背景信息,让读者了解Hadoop在电商数据分析中的重要性和应用场景。

Java大师兄的博客 1179

(转)Java IDE 之Netbeans篇

   NetBeans 5.5:   首先来看NetBeans 5.5,NetBeans 5.5的基本信息如下表:   Vendor:Sun Microsystems   Website:www.netbeans.org  Price:Free/Open source  Distribution:Base + EnterprisePack + Visual Web Pack    安装

AI早餐汇 6059

(ICLR 2025)【源码讲解+复现】TIMER-XL: Long-Context Transformers for Unified Time Series Forecasting

本文提出了一种统一的多变量时序预测模型Timer-XL,其核心创新包括:1)采用自回归解码器架构,将多变量时序预测统一为next-token预测问题;2)设计TimeAttention机制,通过相对位置编码和因果掩码捕获时序位置和变量间交互;3)支持长上下文预训练以提升零样本迁移能力。模型架构包含嵌入层、时间感知注意力块和预测头,采用MSE损失进行端到端训练。实验表明该方法在多种时序任务上表现优异,特别是在长跨度预测和少样本场景下。代码实现提供了完整的模型定义、数据加载和训练流程,支持自定义配置参数。

1146

Visual Web Pack 私人经验(待续)

  以下都是在netbeans5.5.1 + visual web pack5.5.1 + tomcat5.5.17开发程序时的私人经验(引用请注明出处,本人email是liangguanhui@163.com)。   为了说明上的方便,Visual Web Pack将会简称为vwp。   1、在安装了vwp之后,netbeans的帮助里就会包含vwp的帮助,如果你安装的时中文版,...

独占鳌头 205

Devexpress16.2.6破解工具

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NetBean 6.0初探

NetBean 6.0初探 subversion,tomcat6.0,glassfish都集成在NetBean6.0中。 subversion的使用. 1,下载subversion的客户端,到www.collab.net下载,并安装。 2,安装putty工具. 3,解压putty到C盘,比如c:/putty 4,添加环境变量.         变量: path         值  :c:/p

东南草堂 508

蓝牙模块HM-10手册

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

NetBeans中JSF应用开发

这是JSF技术系列讲座的第1个,整个讲座包括两大部分,第1部分是在NetBeans中的开发过程,第二部分是JSF相关技术的全面介绍。JavaServer Faces是Web应用中构建用户接口组件的标注Java API。可以把JSF框架想象成充满随时可以使用的组件的工具箱,这些组件可以在Web应用中快速和方便的重用。这些组件可能是简单的,例如存取用户数据的输入框,可能非常复杂,例如使用弹出式日历

meteorWJ's Home—Floating clound 1596

NetBeans下JSF框架编码简介

本文是介绍在 NetBeans IDE 中使用 JavaServer Faces 框架编码 Web 应用程序系列文章中的第一篇。通过本系列教程的学习,我们将创建名为 jAstrologer 的 Web 应用程序,此程序可获取用户的姓名和生日,然后返回用户的十二宫图、诞生石和星座等信息。JavaServer Faces (JSF) 框架是标准的 Java API,用于在 Web 应用程序中构建用

.NET博文收藏 337

jsf netbeans_NetBeans Java EE技巧9:从数据库创建JSF应用程序

jsf netbeans 您需要非常快速地创建数据库前端吗? NetBeans IDE允许人们以很少的代码就为一组数据库表开发JSF应用程序前端。 现在,本教程是一个老歌,但是一个好东西……对于那些不了解它的人来说,值得再次提及。 首先,创建您的应用程序。 在这种情况下,我通过选择“ New Project”->“ Maven”->“ Web Application”来创建Ma...

最佳 Java 编程 236

NetBeans中JSF应用开发(4)

目标:修改默认的错误消息 每种类型的验证错误所显示的错误信息是由Message.properties文件控制的,该文件位于jsf-impl.jar中的javax.faces包中。可以通过如下方式查看,展开Libraries > Sun Java System Application Server > jsf-impl.jar > javax.faces,然后双击Messages.prope

丶季末筅森的专栏 430
上一篇: NetBeans中JSF应用开发(4)
下一篇: NetBeans中JSF应用开发(6)
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值