NetBeans中JSF应用的开发(3)

本文介绍如何在JSF中使用标准验证器确保表单字段必填,并通过转换器将用户输入转换为正确的对象类型,如将字符串转换为日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
目标:使用标准的验证器和转换器
设置某个域为必填的
首先我们需要做的是确保用户为name域输入一些信息,我们可以通过使用inputText组件的required属性轻松做到。
1.       打开greeting.jsp,然后修改inputText组件如下:
 <p>Enter your name: <h:inputText value="#{UserBean.name}"
         id="name" required="true"/>
<h:message for="name" /></p>
我们必须做的是给名字输入框一个ID,这样我们可以指定消息是哪个组件的消息。我们已经指定这个域是必填的,因此如果用户不输入任何信息,Web应用将显示错误信息。
2.       运行工程,然后不输入任何信息就点击Submit,您将会得到如下错误信息:
使用转换器
现在我们需要把我们的生日作为日期来处理,而不是任意的字符串。JSF框架提供了很多转换器,使用这些转换器可以把文本转换成对象类型,例如布尔类型等等。在转换数据的过程中,要验证数据对于要转换成的数据类型来说是否有效。对于我们的生日输入域来说非常方便,因为我们可以指定日期的格式,对输入进行验证,并同时得到一个Date对象。
1.       打开greeting.jsp,修改生日输入框inputText组件如下:
        <p>Enter your birthday: <h:inputText value="#{UserBean.birthday}"
                   id="birthday" required="true">
            <f:convertDateTime pattern="dd/MM/yyyy" />
        </h:inputText> (dd/mm/yyyy)
        <h:message for="birthday" /></p>
我们必修做的是给生日一个ID,这样我们可以指定消息显示的时候是对应哪个组件的。然后把转换器的格式设置为dd/MM/yyyy。如果用户输入的信息不能匹配这个格式,将重新显示greeting.jsp文件,并显示错误信息。我们同样指定了这个域是必须的,就像姓名域一样。
2.       现在需要把UserBean.java中生日属性的类型修改为Date。打开UserBean.java,修改如下(粗体部分),并添加一个import语句,引入java.util.Date
    private String name;
    private Date birthday;
    ...
 
    public Date getBirthday() {
        return birthday;
    }
 
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }    
3.       运行工程。如果不输入日期就点击Submit,你将得到下面的错误信息:
如果你输入了一个无效的日期,你将得到下面的错误信息:
标准转换器参考书上177页。
标准验证器参考书上186页。
书:《Java EE 5实用教程》
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值