JSF中的ActionListener阶段

Kri*_*hna 3 jsf

HI,

我对在JSF bean中调用ActionListener方法有疑问.例如,JSF表单的每个请求或提交都经历了六个阶段的生命周期.但是,当我们触发特定事件(如动作侦听器或值更改侦听器)时,是否存在与该请求关联的生命周期?

请澄清我.

Bal*_*usC 10

在实际操作方法之前的调用操作阶段期间调用任何操作侦听器.要调用哪些动作侦听器方法是基于与提交相关联actionListenerUICommand组件的属性来确定的.

成功转换/验证提交的值之后,并且在提交的值与初始值不同时,在验证阶段(或immediate="true"对特定UIInput组件应用请求值阶段)调用任何值更改侦听器.根据与提交相关联的组件的属性确定要调用哪些值更改侦听器方法.valueChangeListenerUIInput

不,他们没有自己的生命周期.当他们完成执行并返回时,它仍处于生命周期的同一阶段.在调用之后valueChangeListener,JSF将继续转换/验证下一个UIInput组件,或者如果没有,则继续下一个阶段.在调用之后actionListener,JSF将继续下一个actionListener或如果没有,则调用实际操作方法.


更新:再次阅读您的评论后,我认为我现在看到您对特别是价值变化倾听者的怀疑.您似乎认为默认情况下,它会在客户端更改事件期间立即向服务器端发出一个全新的请求.它是不是默认.您只能通过添加一小段JavaScript代码来实现这一点,该代码在HTML输入字段的更改事件期间提交整个HTML表单.

onchange="this.form.submit()"
Run Code Online (Sandbox Code Playgroud)

这部分与JSF无关.这是一个简单的HTML属性.在webbrowser中打开页面,右键单击并选择" 查看源".你会看到它就在那里.在浏览器中禁用JavaScript或在JSF代码中删除它,您将看到它将不再起作用.你会需要按提交按钮自己把一切运行.