0

我想在多个组件上使用验证。表单中有三个 h:selectOneMenu 组件和一些 h:inputText 组件。在更改第一个 h:selectOneMenu 时,我需要更改第二个的内容而不验证其他字段。这里我使用了 immediate="true"。同样,对于第二个 h:selectOneMenu 组件,onchange 需要在这里更改第三个 SelectList 的内容,以便我想跳过对其他人的验证,并且我也为此组件使用了 immediate=true。问题是“immediate=true 和 FacesContext.getCurrentInstance().renderResponse()”仅适用于 nonImediate 组件。但是由于有两个组件具有 immediate=true ,因此在更改第一个 Select 时会在第二个 SelectOne 列表中显示错误。有人有吗有什么想法吗?先谢谢了。我正在使用 JSF 1.2

4

1 回答 1

0

在选择第一个 h:selectOneMenu 时,您可以使用值更改侦听器,您可以在其中在 bean 中执行您的操作,并且可以更改第二个 h:selectOneMenu 的内容。您需要重新渲染此组件。这样,您的 immediate="true" 部分将从

因此,现在您可以在页面中只放置一个 immediate="true" 并且您只能在一个字段上进行验证。

如果重新渲染和值更改侦听器不是您想要使用的,那么您可以将第一个 immediate="true" 组件放在第一个表单中,第二个 immediate="true" 放在另一个表单中。

这样,由于两种形式都不同,您在这两种情况下的验证将仅在提交或处理该特定表单时运行。

于 2012-04-23T13:58:05.387 回答