为什么在同一页面上提交另一个表单时会触发 f:event postValidation
Why is f:event postValidation triggered while submitting another form on the same page
我有一个 jsf 2.2 应用程序 (myfaces 2.2.8)。在一个页面上,我有来自不同包含的 (jsf:include
) facelet 文件的多个表单。
在一个文件中,表单是用 <f:event type="postValidate"...>
标签定义的。在另一个包含的文件中,另一个表单定义为只有一个提交按钮。
单击此按钮会触发 f:event
中定义的侦听器。为什么?
f:event
标签未绑定到任何表单。它只是一个标记,告诉 JSF 在声明的 type
事件发生时调用侦听器,无论在视图中的哪个位置。因此,这是在提交任何表单时调用的预期行为。您无论如何都可以将源表单抓取到侦听器中:
public void listener(ComponentSystemEvent evt) {
//Get the source form
evt.getSource();
}
另请参阅:
- JSF
f:event
documentation
- List of JSF 2 events
我有一个 jsf 2.2 应用程序 (myfaces 2.2.8)。在一个页面上,我有来自不同包含的 (jsf:include
) facelet 文件的多个表单。
在一个文件中,表单是用 <f:event type="postValidate"...>
标签定义的。在另一个包含的文件中,另一个表单定义为只有一个提交按钮。
单击此按钮会触发 f:event
中定义的侦听器。为什么?
f:event
标签未绑定到任何表单。它只是一个标记,告诉 JSF 在声明的 type
事件发生时调用侦听器,无论在视图中的哪个位置。因此,这是在提交任何表单时调用的预期行为。您无论如何都可以将源表单抓取到侦听器中:
public void listener(ComponentSystemEvent evt) {
//Get the source form
evt.getSource();
}
另请参阅:
- JSF
f:event
documentation - List of JSF 2 events