JSF:在Action方法中返回null只刷新输入文本,而不刷新组合框

时间:2011-11-17 10:45:26

标签: java forms jsf jsf-1.2

我想重置我的JSF表单。我已经实现了一个Action方法,它重置了支持bean中的所有属性。

当我再次返回转发到同一页面的String时,所有表单条目都会重置。输入文本框以及组合框。

但是当我返回null时,只重置输入文本框,而不是组合框。

我不明白这种行为。两种方式都调用相同的方法,都转发到同一页面。

1 个答案:

答案 0 :(得分:5)

从action方法返回结果会导致构造视图的新实例(使用新的组件树)。如果改为返回null,则重用现有视图实例(现有组件树)。

JSF中的组件是允许有状态的。例如,如果验证失败,JSF不会更新模型(backingbean),但仍会重新呈现用户输入的无效数据。这是通过将无效数据保留在组件中来实现的。