我想知道是否可以绕过 JSF2 中某些操作的 bean 验证器。
我使用 NetBeans 7 从数据库架构生成实体,其中包括验证属性。
在我的 JSF 应用程序中,我有一个搜索屏幕,谁支持 bean 使用实体的实例来保存用户的查询参数。然后,我对实体实例使用反射来生成动态查询以执行用户的搜索。用户执行搜索后,他们可以选择一个项目并转到我希望强制执行验证的编辑页面。
我的问题是,在搜索屏幕上,对我的实体强制执行 Bean 验证。因此,如果我的实体有 3 个必填字段,而用户只搜索 3 个中的 1 个,我会收到两条"字段为必填字段"错误消息。
我知道我可以通过为我的搜索支持 bean 创建一个没有验证注释的新类来解决这个问题,但这对我来说似乎不是一个理想的解决方案:我最终会得到两个基本相同的类,只是注释不同。
您可以将 f:validateBean 与 disabled="true" 添加到您不希望验证它们的第一个表单中,然后不将其包含在您这样做的视图中:
<h:inputText value="#{entity.property}">
<f:validateBean disabled="#{true}"/>
</h:inputText>
在冰面上不是那样工作的:我必须:
<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>