一个输入的多个验证器

时间:2011-02-12 21:03:41

标签: jsf jsf-2 validation

JSF 2.0中是否可以为一个输入提供多个验证器?例如,假设我将写一个用户名,用户名必须包含8个字符。如果确定,则检查数据库中是否存在用户名。

<ice:inputText id="username" value="#{createClient.username}" maxlength="15">
  <-- something like this -->
  <f:validator validatorId="usernameValidator" validatorId="usernameExistValidator" />
</ice:inputText> 
<ice:message for="username" />

2 个答案:

答案 0 :(得分:13)

这绝对是可能的。您可以根据需要将尽可能多的验证器附加到组件,但是您必须为每个验证器使用单独的标记。

E.g。

<ice:inputText id="username" value="#{createClient.username}" maxlength="15">
  <f:validator validatorId="usernameValidator"/>
  <f:validator validatorId="usernameExistValidator" />  
</ice:inputText>

答案 1 :(得分:0)

是的,您可以有多个验证器,但是要使用单独的标签。
执行顺序与页面上列出的顺序相同,并且每个执行都不依赖于另一个。
示例:
如果用户名不包含8个字符,则还将连续检查数据库中是否存在用户名。

<ice:inputText id="username" value="#{createClient.username}" maxlength="15">
    <f:validator validatorId="usernameValidator" />
    <f:validator validatorId="usernameExistValidator" />
</ice:inputText> 
<ice:message for="username" />