2011-04-21 111 views
0

我开始了解JSF,并且我已经能够添加一些标准的验证器,这些验证器出现在我已经定义的消息中,但他们只验证当我点击按钮提交表单时,需要验证的组件是in。我希望这些组件在我点击它们之外(例如使用onblur)时已经被验证,但是我不知道我需要在onblur属性中调用哪个方法执行该元素的验证器?我在这一刻的代码是:拦截JSF验证

<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> 

+1

请参阅http://stackoverflow.com/questions/4013410/jsf2-validation-clientside-or-serverside – Adam 2011-04-21 09:28:07

+0

JSF 1.x或2.x? – BalusC 2011-04-21 10:57:07

回答

0

JSF验证发生服务器端,所以你基本上是需要有一个提交触发有服务器端代码激活。

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

0

如果您正在使用JSF2,你可以完成你在找什么,加入RichFaces的到您的构建和使用RichFaces的客户端验证:

Richfaces Client Side Validation

正是在他们的V4版本一个伟大的新功能它将标准的jsf验证器和JSR-303 bean验证编译为可以在客户端执行的javascript。你可以在任何标准的JavaScript事件(模糊,点击,键盘)上触发验证。