我想在多个组件上使用验证。在表单中有三个h:selectOneMenu组件和一些h:inputText组件。更改第一个h:selectOneMenu我需要更改第二个内容而不验证其他字段。我使用immediate =“true”。 类似地对于第二个h:selectOneMenu组件onchanging需要在这里更改第三个SelectList的内容,我想跳过其他人的验证,我也使用了immediate = true这个组件。问题是“immediate = true和FacesContext.getCurrentInstance()。renderResponse()”仅适用于非中间组件。但由于有两个组件,其中immediate = true,在更改时首先选择一个错误显示在第二个SelectOne列表中。有人有对此有何想法? 提前致谢。 我正在使用JSF 1.2
答案 0 :(得分:0)
在选择第一个h:selectOneMenu时,您可以使用值更改侦听器,您可以在其中执行bean中的内容并可以更改第二个h:selectOneMenu的内容。您需要重新呈现此组件。这样,您的立即=“真实”部分将从
中消除所以现在你可以在页面中只放一个立即=“真”,你只能在一个字段上进行验证。
如果重新渲染和值更改侦听器不是您想要使用的,那么您可以将第一个immediate =“true”组件放在第一个窗体中,将第二个immediate =“true”放在另一个窗体中。
这种方式由于两种形式都不同,因此只有在提交或处理特定表格时,才会在两种情况下进行验证。