0

我们正在开发一个基于 JSF (v2.0) 框架的 Web 应用程序。我们需要在我们的应用程序中进行自定义验证。我们决定JSF validation framework通过实现Validator类来扩展 。

所以让我们说我们有多个需要验证的输入字段。这些输入字段是First Name, Last NameEmail Address.我们需要用户在这些字段中输入信息。并且电子邮件地址字段将有两个验证 -RequiredisValidEmailAddress.

我们应该能够在和字段中使用自定义Required验证。但每次我希望为每个字段显示不同的错误消息。例如,如果是,我想显示 First Name Last name Last name is required`。First Name, Last NameEmail AddressFirst Nameis required. In case ofI want to display

如何Required为多个字段重用相同的验证实现但错误消息不同?可以在 JSF 中做到这一点吗?你能告诉我吗?

4

1 回答 1

0

首先,您不需要在 JSF 中为所需的输入编写自己的验证逻辑。它是框架本身提供的基本设施之一。

JSF 的验证框架完全从与验证相关的消息中抽象出来,因此两者不必相互依赖。您的选择:

  1. 每个输入组件都有一个validatorMessage属性,允许您指定将在验证错误时显示给用户的文本/字符串。对于您的特定用例,JSF 更进一步为输入组件指定requiredandrequiredMessage属性;分别强制执行所需的输入并显示专门用于所需输入验证的消息。这在您的用例中意味着您不需要为所需的输入编写自定义验证逻辑。

  2. 根据更好的设计原则,您可以在资源包中配置所有所需的验证/转换错误消息(此处为示例),并在您的 jsf 视图中引用资源包中的条目。

实现验证器接口需要您实现validate具有以下签名的方法

   public void validate(FacesContext ctxt, UIComponent comp, Object value) throws ValidatorException

comp指正在验证的组件,您可以从中获取它Class,clientId 等value将提供来自组件的提交值

于 2013-01-02T04:07:25.160 回答