我想知道是否可以绕过JSF2中某些操作的bean验证器。
我使用NetBeans 7从我的数据库模式生成实体,其中包含验证属性。
在我的JSF应用程序中,我有一个搜索屏幕,谁支持bean使用实体的实例来保存用户的查询参数。然后,我在实体实例上使用反射来生成动态查询以执行用户的搜索。一旦用户执行搜索,他们就可以选择一个项目,然后转到我希望执行验证的编辑页面。
我的问题是在搜索屏幕上强制执行我的实体上的bean验证。因此,如果我的实体有3个必填字段,并且用户只搜索3个中的1个,我会收到两个“字段是必填的”错误消息。
我知道我可以通过为我的搜索支持bean创建一个没有验证注释的新类来解决这个问题,但这对我来说似乎不是一个理想的解决方案:我最终得到两个基本相同的类,只是带有不同的注释。
答案 0 :(得分:4)
您可以将f:validateBean with disabled =“true”添加到您不希望它们验证的第一个表单中,然后不将其包含在您执行的视图中:
<h:inputText value="#{entity.property}">
<f:validateBean disabled="#{true}"/>
</h:inputText>
答案 1 :(得分:2)
<f:validateBean disabled="true" >
<ice:outputText value="#{messages['busqueda.bodega.tabla.datos.etiqueta.nombre']}"/> <ice:inputText" value="#busquedaBodegaBean.busquedaBodegaBB. bodegaCriterio.nombre}">
</ice:inputText>
</f:validateBean>