Thursday, August 03, 2006

JSF 中的校验器

基于界面UI开发中的一个重要部分就是保证用户输入了合法的值-这种校验可能是诸如“必须是符合数据库要求的正确身份信息”这样的负责验证,也可能是简单的“不能为空”的简单验证。通常,为了保证输入的合法性,需要用JavaScript或者Java写很多复杂的代码。而且,如果没有框架的帮助,显示错误消息也会变的麻烦。

控制验证有三种方式:在UI组件层,通过后台Bean的验证方法,或者单独的校验器类。UI组件通常负责简单的校验,比如哪些值是必须输入的,或者组件自身的校验逻辑。当你需要校验一个表单上的一个或者多个值的时候校验器的方法是非常有用的(你无需和其他组件共享这些校验逻辑)。当你要验证诸如字段长度、数字范围时外部校验器非常有用。这种方式是插件化的,就是说你可以在其他组件上使用这些验证器。校验过程是在服务器端完成的,因为客户端不支持脚本(JSF组件支持客户端校验,但是标准组件不这么作)。

当校验器检验到错误时,比如字符串太长,或者错误的信用卡号,它会把错误消息添加到当前的错误信息列表中。这样JSF标准组件就可以很方便的向客户端用户显示错误信息。下面是一个例子:

如你所见使用组件的校验器非常简单。上面定义的Html输入框组件可以校验输入的字符长度在210之间。

通常,web开发中的校验是一样苦差事。JSF中的校验器提供了一个强大的框架,这使校验开发变得更简单。JSF提供了一套标准的校验器,比如校验字符长度,数字输入范围等。当然,你可以使用第三方开发的校验器或者自定义校验器。标准校验器和自定义校验器开发将在随后详细讲述。

No comments: