你好,
我对在JSF bean中调用ActionListener方法有疑问。例如,每个JSF表单的请求或提交都经过六个阶段的生命周期。但是,当我们触发特定事件(如action listener或value change listener)时,是否与该请求相关联的任何生命周期?
请解释一下。
你好,
我对在JSF bean中调用ActionListener方法有疑问。例如,每个JSF表单的请求或提交都经过六个阶段的生命周期。但是,当我们触发特定事件(如action listener或value change listener)时,是否与该请求相关联的任何生命周期?
请解释一下。
UICommand
组件的actionListener
属性。UIInput
组件的immediate =“true”
时应用请求值阶段)成功转换/验证提交的值后被调用,仅当提交的值与初始值不同时才调用。决定要调用哪些值更改监听器方法是基于与提交相关联的UIInput
组件的valueChangeListener
属性。valueChangeListener
之后,JSF将继续转换/验证下一个UIInput
组件,如果没有,则继续执行下一个阶段。在调用actionListener
之后,JSF将继续下一个actionListener
,如果没有,则调用实际动作方法。onchange="this.form.submit()"
这部分与JSF无关,它是一个简单的HTML属性。在Web浏览器中打开页面,右键单击并选择查看源代码。您将看到它在那里。在浏览器中禁用JavaScript或在JSF代码中删除它,您会发现它将不再起作用。您需要自己按下提交按钮才能使其全部运行。
ExternalContext#redirect()
或FacesContext#responseComplete()
时,它才会让JSF跳出生命周期。第一个将放弃和丢弃整个请求,并让浏览器在给定的URL上触发全新的GET请求。第二个默认情况下将导致空白页面。这通常在操作方法中使用(例如,当您已经自己向响应写入了某些内容(例如二进制文件)并希望避免JSF呈现视图(从而破坏二进制文件)时)。 - BalusC