我正在尝试使用取消按钮重置数据表内的一些输入文本字段。我遇到的问题是,如果我尝试取消它,但出现验证错误,它不允许我这样做,因为它首先进行验证,发现并出错,并在重新呈现之前输出错误。
显而易见的解决方案是在按钮上设置“immediate=true”。这消除了这个问题,并允许我在没有验证的情况下取消但字段本身未设置为其原始值。这是因为组件本身永远不会从支持 bean 重新获取数据,因为 immediate 设置为 true。
这在这篇文章中得到了很好的解释:http ://wiki.apache.org/myfaces/ClearInputComponents
这篇文章提出了许多解决方案,但没有一个对我有用。
- 我必须保持在同一页面上,因此不能更改视图。
- 我无法重置页面上所有输入字段的值,因为我只想重置我取消的“行”
我似乎无法将组件绑定到任何输入字段,因为它们位于数据表中,输入字段本身的“绑定”属性不能引用“var”变量。例如,以下“绑定”属性是非法的,并给我一个错误:
<ice:dataTable id="poolSharesTbl" var="node" value="#{poolSharesManager.nodeModel}" ... <ice:column> <ice:inputText binding="#{node.inputTextBinding}" ...
这可能与仅作为请求范围的“var”有关。
无论如何,有人对如何使它工作有任何想法吗?