JSF验证器和转换器
2007-10-19 20:48
232 查看
JSF验证器和转换器
++YONG原创,转载请注明
1 验证器:
JSF是通过后台bean和验证器中的验证器方法来支持数据验证的。
1.1 使用验证器方法:
输入组件可关联到后台bean中的验证器方法。验证器方法通常用作应用特定的验证,重用性不高。假设有名为registrationBean的后台bean,它有一名为validateEmail的验证方法。那么在JSP中,便可以这样将输入组件关联到此方法:
现在用户为这个控件输入一个值,validateEmail方法都将对其进行检查以确保其有效。如果成功,后台bean的email将被更新;否则,产生错误消息。
1.2 使用验证器:
对任何输入组件,你都可以注册一个或多个验证器。JSF内建了三个标准验证器。如下图:
一个组件可以关联任意多个验证器。值得注意的是,每个组件都有required属性,它强制组件拒绝空值。这个不是标准的验证器,它验证行为是由输入组件自行处理的。
另外,你还可以定义自己的验证器。
2 转换器:
为了使用户界面能够以用户能够理解的方式显示对象,对象必须能够转换为适当的字符串以供显示。JSF提供了一套标准转换器来满足基本的类型转换的要求。当然你也可以编写自己的转换器或作用第三方提供的转换器。
你可以将转换器关联到几乎任何显示简单值的组件,特别是输入组件。要记住,转换器是双向的。它们最擅长的是调整对象显示给用户的方式,但是如果将它们与输入控件联合使用时,用户的输入格式必须按照转换器指定的格式。
JSF定义了两个标准转换器,DateTime转换器用来格式化日期对象,Number转换器用来格式化任何类型的数据,包括货币和百分数。
2.1 使用DateTime转换器:
示例:假设user对象的dateOfBirth的值为2003年5月23日上午7点24分18秒
则这段代码将会在文件框显示2003-05-23 (07:24)。用户输入的日期格式也要是这种模式的,否则将产生转换错误。
2.2 使用Number转换器:
示例:
我们指定为最小2位整数和最大5位整数,以及两位小数且货币符号为“$”。所以,对于数值12345678.9876,转换器将显示$45,678.99。第五位整数左边的数字(123)将被切去。另外,只有两位小数被显示,最后一位被四舍五入。
3 自定义验证器:
4 自定义转换器:
++YONG原创,转载请注明
1 验证器:
JSF是通过后台bean和验证器中的验证器方法来支持数据验证的。
1.1 使用验证器方法:
输入组件可关联到后台bean中的验证器方法。验证器方法通常用作应用特定的验证,重用性不高。假设有名为registrationBean的后台bean,它有一名为validateEmail的验证方法。那么在JSP中,便可以这样将输入组件关联到此方法:
<h:inputText id= "emailInput" validator= "#{registrationBean.validateEmail}" value= "#{registrationBean.email}" /> |
1.2 使用验证器:
对任何输入组件,你都可以注册一个或多个验证器。JSF内建了三个标准验证器。如下图:
JSP定制标签 | 属性 | 行为 |
<f:validateDoubleRange > | minimum、maximum | 确保组件的值可以被转换成double型数值,并且在指定的最小、最大值范围内 |
<f:validateLength > | minimum、maximum | 确保组件的值的长度在指定的最小、最大值范围内 |
<f:validateLongRange > | minimum、maximum | 确保组件的值可以被转换成long型数值,并且在指定的最小、最大值范围内 |
另外,你还可以定义自己的验证器。
2 转换器:
为了使用户界面能够以用户能够理解的方式显示对象,对象必须能够转换为适当的字符串以供显示。JSF提供了一套标准转换器来满足基本的类型转换的要求。当然你也可以编写自己的转换器或作用第三方提供的转换器。
你可以将转换器关联到几乎任何显示简单值的组件,特别是输入组件。要记住,转换器是双向的。它们最擅长的是调整对象显示给用户的方式,但是如果将它们与输入控件联合使用时,用户的输入格式必须按照转换器指定的格式。
JSF定义了两个标准转换器,DateTime转换器用来格式化日期对象,Number转换器用来格式化任何类型的数据,包括货币和百分数。
2.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 |
<h:inputText value="#{user.dateOfBirth}"> <f:convertDateTime pattern="yyyy-MM-dd (HH:mm)" /> </h:imputText> |
2.2 使用Number转换器:
标签 | 属性 | 说明 |
<f:convertNumber /> | currencyCode | 当type为currency时,指定三位数的国际货币代码。 |
currencySymbol | 当type为currency时,指定特定的记号,如“$”。 | |
groupingUsed | 如果应该使用的分组记号(如:”,”或” ”)为true。默认为true | |
integerOnly | 如果只需要处理输入值的整数部分(小数部分将被忽略),则设置为true。默认值为false | |
locale | 用于显示这个数据的特定场所。将覆盖用户的当前场所。 | |
minFractionDigits | 要显示的最小小数位数 | |
maxFractionDigits | 要显示的最大小数位数 | |
minIntegerDigits | 要显示的最小整数位数 | |
maxIntegerDigits | 要显示的最大整数位数 | |
pattern | 用于转换数值的小数格式模式。它和type属性二选一 | |
type | 数值的类型:可以是number(默认值)数字、currency货币或者percentage百分比。 |
<h:inputText id="CurrencyDigitsInput" value="#{user.balance}"> <f:convertNumber type="currency" minIntegerDigits="2" maxIntegerDigits="5" maxFractionDigits="2" currencySymbol="$" /> </h:inputText> |
3 自定义验证器:
4 自定义转换器:
相关文章推荐
- JSF验证器和转换器
- jsf项目使用shiro验证局部文件时出现"The server encountered an internal error..."
- jsf 中 a4j:support 提交表单前的验证
- Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证
- Java Server Faces(JSF)历险(二),验证和转换
- JSF 转换与验证
- JSF backing bean的转换和验证
- Primefaces(JSF2)跳过页面验证提交
- JSF---->标准验证器
- JSF---->标准转换器(Converter)
- JSF复习系列(4)--验证器Validator的简单实例
- jsf中的 国际化,验证和转换
- 在JSF中使用Shale进行客户端验证
- jsf服务器端验证用户输入
- JSF 验证器与消息机制
- JSF---->标准验证器
- JSF + Primefaces表单验证
- jsf标签 from表单验证
- JSF教程三 数据转换与验证 提示错误设置为中文
- jsf 表单验证