以编程方式设置上下文变量以启用/禁用bean验证

Mat*_*ari 1 jsf bean-validation jsf-2

在我web.xml,我有这个配置条目:

<context-param>
   <param-name>javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR</param-name>
   <param-value>true</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

但是,我不希望它永远存在true.我想根据情况设置它truefalse在我的托管bean中.那可能吗?

Bal*_*usC 5

不,这是解决具体问题的错误方法.为此,<f:validateBean>实际上应该使用标签.

你可以在每个视图或每个表单的基础上使用它,大多数自我记录将只是包装它<h:form>.在<h:form>又可以只是在模板客户机(和<f:validateBean>在主模板因而).

<f:validateBean disabled="true">
    <h:form>

    </h:form>
</f:validateBean>
Run Code Online (Sandbox Code Playgroud)

你甚至可以在那里使用EL.

<f:validateBean disabled="#{settings.beanValidationDisabled}">
Run Code Online (Sandbox Code Playgroud)