JSF证器和转换器.docVIP

  • 4
  • 0
  • 约5.13千字
  • 约 3页
  • 2017-06-13 发布于河南
  • 举报
JSF证器和转换器

??? 验证器: JSF是通过后台bean和验证器中的验证器方法来支持数据验证的。 1.1????? 使用验证器方法: 输入组件可关联到后台bean中的验证器方法。验证器方法通常用作应用特定的验证,重用性不高。假设有名为registrationBean的后台bean,它有一名为validateEmail的验证方法。那么在JSP中,便可以这样将输入组件关联到此方法: h:inputText id= emailInput validator= #{registrationBean.validateEmail} ????????????? value= #{registrationBean.email} / 现在用户为这个控件输入一个值,validateEmail方法都将对其进行检查以确保其有效。如果成功,后台bean的email将被更新;否则,产生错误消息。 1.2????? 使用验证器: 对任何输入组件,你都可以注册一个或多个验证器。JSF内建了三个标准验证器。如下图: JSP定制标签 属性 行为 f:validateDoubleRange minimum、maximum 确保组件的值可以被转换成double型数值,并且在指定的最小、最大值范围内 f:validateLength minimum、maximum 确保组件的值的长度在指定的最小、最大值范围内 f:validateLongRange minimum、maximum 确保组件的值可以被转换成long型数值,并且在指定的最小、最大值范围内 一个组件可以关联任意多个验证器。值得注意的是,每个组件都有required属性,它强制组件拒绝空值。这个不是标准的验证器,它验证行为是由输入组件自行处理的。 另外,你还可以定义自己的验证器。 2????? 转换器: 为了使用户界面能够以用户能够理解的方式显示对象,对象必须能够转换为适当的字符串以供显示。JSF提供了一套标准转换器来满足基本的类型转换的要求。当然你也可以编写自己的转换器或作用第三方提供的转换器。 你可以将转换器关联到几乎任何显示简单值的组件,特别是输入组件。要记住,转换器是双向的。它们最擅长的是调整对象显示给用户的方式,但是如果将它们与输入控件联合使用时,用户的输入格式必须按照转换器指定的格式。 JSF定义了两个标准转换器,DateTime转换器用来格式化日期对象,Number转换器用来格式化任何类型的数据,包括货币和百分数。 .1????? 使用DateTime转换器: JSP标签 属性 说明 f:convertDateTime dateStyle 指定字符串日期部分的格式样式。有效值有: short、medium(默认)、long和full。仅在设置了type属性时有效 timeStyle 指定字符串时间部分的格式样式。有效值有: short、medium(默认)、long和full。仅在设置了type属性时有效 timeZone 指定日期的时区。如果没有指定,将使用格林尼治标准时间(GMT) locale 用来显示日期的特定场所。将覆盖用户的当前场所。 pattern 用于转换这个数值的日期格式模式,此模式与用于java.util.SimpleDateFormat类的格式模式是相同的。它和type属性只能选一个 type 指定是否显示日期、时间或两者都显示,有效值为:date、time、both 示例:假设user对象的dateOfBirth的值为2003年5月23日上午7点24分18秒 h:inputText value=#{user.dateOfBirth} ?f:convertDateTime pattern=yyyy-MM-dd (HH:mm) / /h:imputText 则这段代码将会在文件框显示2003-05-23 (07:24)。用户输入的日期格式也要是这种模式的,否则将产生转换错误。 2.2????? 使用Number转换器: 标签 属性 说明 f:convertNumber / currencyCode 当type为currency时,指定三位数的国际货币代码。 currencySymbol 当type为currency时,指定特定的记号,如“$”。 groupingUsed 如果应该使用的分组记号(如:”,”或” ”)为true。默认为true integerOnly 如果只需要处理输入值的整数部分(小数部分将被忽略),则设置为true。默认值为false locale 用于显示这个数

文档评论(0)

1亿VIP精品文档

相关文档