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 实用教程》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值