6

immediate="true"当我在命令按钮中声明时会采取什么行动?文件说

布尔值,确定操作事件的 phaseId,当在“应用请求值”处理真正的操作时,在“调用应用程序”阶段处理为假。

但是,我不明白。有人可以解释一下吗?

4

1 回答 1

11

JSF 生命周期包含 6 个阶段,它们是:

  1. 恢复视图
  2. 应用请求值
  3. 过程验证
  4. 更新模型值
  5. 调用应用程序
  6. 渲染响应

如果命令按钮有immediate="true",则跳过“过程验证”和“更新模型值”阶段。因此,不会处理转换和验证,也不会更新托管 bean 中的属性。

但是,如果表单中的 UIInput 也具有 immediate="true",则其值将在托管 bean 中进行转换、验证和更新,因为它将发生在“应用请求值”阶段。

您可以使用带有 immediate="true" 的按钮的一个示例是“取消”按钮的情况。

于 2013-05-14T11:43:49.293 回答