Intercept JSF-validations



我开始了解JSF,我已经能够添加一些标准的验证器,这些验证器显示在我定义的消息中,但是只有当我单击按钮提交需要验证的组件所在的表单时,它们才会验证。我希望这些组件在我点击它们外部(例如onblur)的那一刻就已经被验证了,但我不知道我必须在onblur属性中调用哪个方法来执行该元素的验证器?我现在的代码是:

<h:form>
  <h:outputText value="#{msgs.name}"/><br/>
  <h:inputText id="name" value="#{user.name}" label="#{msgs.name}" required="true" requiredMessage="#{msgs.name_required}"/>
 <h:message for="name" styleClass="error_single_message"/>
  <br/><br/>
  <h:outputText value="#{msgs.password}"/><br/>
  <h:inputText id="password" value="#{user.password}" label="#{msgs.password}" required="true" requiredMessage="#{msgs.password_required}"/>
  <h:message for="password" styleClass="error_single_message"/>
  <br/><br/>
  <div class="error_overview_messages">Overview errors
  <h:messages showDetail="#{true}" showSummary="#{false}"/>
  </div><br/>
  <h:commandButton value="Log_on" action="logged_in"/>
</h:form>

JSF验证发生在服务器端,因此您实际上需要触发提交以激活服务器端代码。

如果您对此不感兴趣,则需要激活一些特定的Java脚本。

如果您正在使用JSF2,您可以通过在构建中添加Richfaces并使用Richfaces客户端验证来完成您正在寻找的内容:

Richfaces客户端验证

这是他们v4版本中一个很棒的新特性,它将标准jsf验证器和JSR-303 bean验证编译成可以在客户端执行的javascript。你可以在任何标准的javascript事件(模糊、点击、keyup)上触发验证。

相关内容

  • 没有找到相关文章

最新更新