在页面加载期间禁用自定义验证器

时间:2013-08-07 04:10:12

标签: jsf-2 validation

我在JSF页面上有一个自定义验证器,我使用view param将callbackUrl的值设置为URL中收到的Backing Bean。

例如,

http://localhost:8080/myapp/index.jsf?callbackUrl=google.com

JSF:

<f:metadata>
    <f:viewParam id="callbackUrl" name="callbackUrl"
        value="#{userbean.callbackUrl}">
        <f:validator validatorId="com.me.something.CallbackUrlValidator" />
    </f:viewParam>
</f:metadata>

我有一个自定义验证程序,用于检查URL是否有效。自定义验证程序在页面加载期间执行一次,在页面提交期间执行一次我希望只有验证器才能在页面提交期间启动。无论如何我能做到吗?

1 个答案:

答案 0 :(得分:1)

<f:validator>标记具有disabled属性。

要检查当前请求是否为回发(表单提交),请检查FacesContext#isPostback()

<f:validator ... disabled="#{not facesContext.postback}" />