NetBeans中JSF应用的开发(3)

目标:使用标准的验证器和转换器
设置某个域为必填的
首先我们需要做的是确保用户为 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 实用教程》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值