我想重置我的JSF表单。我已经实现了一个Action
方法,它重置了支持bean中的所有属性。
当我再次返回转发到同一页面的String
时,所有表单条目都会重置。输入文本框以及组合框。
但是当我返回null
时,只重置输入文本框,而不是组合框。
我不明白这种行为。两种方式都调用相同的方法,都转发到同一页面。
答案 0 :(得分:5)
从action方法返回结果会导致构造视图的新实例(使用新的组件树)。如果改为返回null
,则重用现有视图实例(现有组件树)。
JSF中的组件是允许有状态的。例如,如果验证失败,JSF不会更新模型(backingbean),但仍会重新呈现用户输入的无效数据。这是通过将无效数据保留在组件中来实现的。