0

我在 JSF 页面上有一个自定义验证器,我正在使用视图参数来设置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 是否有效。自定义验证器在页面加载期间和页面提交期间执行一次。我只希望验证器仅在页面提交期间启动。无论如何我可以做到这一点吗?

4

1 回答 1

1

<f:validator>标签有一个disabled专门用于目的的属性。

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

<f:validator ... disabled="#{not facesContext.postback}" />
于 2013-08-07T14:26:06.400 回答