Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示或更改视图后执行一些代码_Java_Jsf_Session Scope_View Scope - Fatal编程技术网

Java 显示或更改视图后执行一些代码

Java 显示或更改视图后执行一些代码,java,jsf,session-scope,view-scope,Java,Jsf,Session Scope,View Scope,我有一个菜单,菜单上的项目指向不同的视图 每个视图都有一个带有附加侦听器的选择组合框 在该视图中,我使用会话范围的托管bean 当我第一次导航到视图时,在构造bean时会调用一个方法。当用户更改选择框中的值时,将调用相同的方法。但是当视图重新显示时,不会调用该方法 这是因为我使用了会话范围的bean。更好的解决方案是使用视图范围的bean,但我正在寻找替代方案。当视图更改时,是否有方法执行某些代码 您可以使用将侦听器方法附加到preRenderView事件 例如 与 这将在每次渲染响应阶段开

我有一个菜单,菜单上的项目指向不同的视图

每个视图都有一个带有附加侦听器的选择组合框

在该视图中,我使用会话范围的托管bean

当我第一次导航到视图时,在构造bean时会调用一个方法。当用户更改选择框中的值时,将调用相同的方法。但是当视图重新显示时,不会调用该方法

这是因为我使用了会话范围的bean。更好的解决方案是使用视图范围的bean,但我正在寻找替代方案。当视图更改时,是否有方法执行某些代码

您可以使用
将侦听器方法附加到
preRenderView
事件

例如



这将在每次渲染响应阶段开始时调用。

谢谢。这正是我需要的。
public void preRenderView() {
    // ...
}