繁体   English   中英

JSF中的ActionListener阶段

[英]ActionListener phases in JSF

HI,

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

请澄清我。

在实际操作方法之前的调用操作阶段期间调用任何操作侦听器。 要调用哪些动作侦听器方法是根据与提交相关联的UICommand组件的actionListener属性确定的。

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

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


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

onchange="this.form.submit()"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM