`
lixucheng
  • 浏览: 80204 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

NetBeans中JSF应用开发(5)

    博客分类:
  • JSF
阅读更多
创建自定义验证器
如果标准的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实用教程》
分享到:
评论

相关推荐

    NetBeans中JSF应用开发

    NetBeans中JSF应用开发

    利用NetBeans IDE构建JSF应用

    在基于J2EE技术的三层架构软件开发过程中,大部分程序员比较习惯于所谓的SSH架构,即Struts+Spring+Hibernate。其中Struts框架负责“视图View—控制器Control—模型Model”的导航。而JSF的出现,给了程序员们一个...

    在NetBeans环境下使用JSF+TOMAHAWK框架开发J2EE程序

    在基于J2EE 技术的三层架构软件开发过程中,大部分程序员比较习惯于所谓 的SSH 架构,即Struts+Spring+Hibernate。其中Struts 框架负责“视图View— 控制器Control—模型Model”的导航。而JSF 的出现,给了程序员们...

    JSF网页应用开发购物车

    用NetBeans做一个可以增加删除的购物车的JSF WEB应用

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    李刚,从事10年的Java EE应用开发。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息平台的架构设计。曾任广州电信、广东龙泉科技等公司的技术培训导师。2007年3月26日的《电脑报》专访人物。现任新东方广州中心...

    Create a Java EE 6 Application with JSF 2, EJB 3.1, JPA, and NetBeans IDE 7

    使用Netbeans 7.3 开发基于JSF, EJB, JPA的应用程序. JSF实用primefaces 3.4, 数据库使用oraclexe 11g. 注: 该文档是在原作者的netbeans6.8, javadb的基础上修改的,并在netbeans 7.3中测试成功.

    NetBeans Visual Web Pack 5入门

    NetBeans Visual Web 使用指南,通过这个简易指南,您可以快速入门使用JSF,并且可以快速开发基于JSF应用程序。

    jakartaee8-starter-boilerplate:一个样板项目,用于在几秒钟内启动Jakarta EE 8应用程序

    文件有适用于Jakarta EE新手,包括: 使用流行的IDE设置本地开发环境,例如: Apache NetBeans IDE Eclipse IDE IntelliJ IDEA。 在流行的应用程序服务器上部署和运行应用程序,例如: 玻璃鱼野蝇开放自由使用Junit...

    基于J2EE架构的生产管理系统设计

    采用Netbeans、Eclipse、Oracle、Tomcat 等作为开发工具,在持久层使用轻量级ORM 开源框架Hibernate 技术,结合DAO 设计模式。用Spring 的IOC 和AOP 技术对持 久层和业务逻辑层对象进行管理,为web 应用提供事务管理...

    LightBulb:示例应用程序

    应用程序本身展示了如何在不使用 JBoss 或 WebSphere 等重型应用程序服务器的情况下开发 JPA/JSF 应用程序。 索引页上显示了一个可点击的灯泡图像,其中从数据库中获取了最后的开关状态。 bean 也是会话范围的,以...

    电子拍卖系统java 源码

    基于Jboss+JSF+JPA+EJB3开发。 部署Java EE应用请按如下步骤进行: 1. 将mysql.sql脚本中的语句导入MySQL数据库。 可以修改tomcat、mysql两个账户的邮件地址,这样可使用自己的邮件地址来收取系统发送的邮件通知。...

    Java EE 7权威指南卷1_1

    并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了平台的基础知识,包括资源创建、资源注入和打包,还涵盖了多项相关技术,包括JavaServer Faces(JSF)、Java Servlet、WebSocket Java...

    Java EE 7权威指南卷1 part2

    并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了平台的基础知识,包括资源创建、资源注入和打包,还涵盖了多项相关技术,包括JavaServer Faces(JSF)、Java Servlet、WebSocket Java...

    Jobby:一种Web应用程序,旨在使用多标准决策辅助(MCDA)对简历进行排序,以对简历进行排序

    该Web应用程序使用Java EE(JSF框架),Postgresql,Glassfish,Google Maps API,Ajax,Primefaces,Maven,Netbeans, 主要特点: 与工作机会相关的排名恢复使用以下四个标准:经验年限,学习程度,技能和语言。 ...

    吉林大学软件学院卓班JAVAEE课程设计

    (二)要求使用JSF作为页面开发手段,请勿使用JSP页面。 (三)开发工具建议使用NetBeans或者Eclipse。 (四)建议使用Mysql作为数据库服务器,也可以使用JavaDB等其他数据库类产品作为数据库服务器。 三、性能要求...

    java初学者的工具ppt文件

    学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。 4.1 学习JSP/Servlet ...

    jakartaee8:A JakartaEE 8 Enterprice入门

    文件有适用于Jakarta EE新手,包括: 使用流行的IDE设置本地开发环境,例如: Apache NetBeans IDE Eclipse IDE IntelliJ IDEA。 在流行的应用程序服务器上部署和运行应用程序,例如: 玻璃鱼野蝇开放自由使用Junit...

    iuhyiuhkjh908u0980

    此外,由于不同终端性能的差别,j2me开发中的 机型适配是相当繁琐的工作。当然,对于该难题,有很多种解决方案。例如,可以使用j2mepolish,请参考本人以前发表的文章《使用J2mePolish的build和preprocess功能》。...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

Global site tag (gtag.js) - Google Analytics