Java 按下按钮时,JSF页面值被清除

Java 按下按钮时,JSF页面值被清除,java,jsf,Java,Jsf,我有一个JSF页面,其作用域定义为request。 在第一个按钮的一个操作方法中,我将值分配给页面元素,如下所示: bean.setEmpNo("abc"); 在另一个按钮中,我调用一个方法将值保存到数据库。当我单击第二个按钮时,通过单击第一个按钮指定的值将被清除 这是因为我的范围是请求吗? 即使我调用同一页面中的其他按钮,保持指定给页面属性的值的最佳方法是什么 我的JSF版本是1.1 谢谢是请求范围的生命周期仅限于从请求到响应。。如果要将其用于同一视图,可以使用ViewScope。是的,这将

我有一个JSF页面,其作用域定义为request。 在第一个按钮的一个操作方法中,我将值分配给页面元素,如下所示:

bean.setEmpNo("abc");
在另一个按钮中,我调用一个方法将值保存到数据库。当我单击第二个按钮时,通过单击第一个按钮指定的值将被清除

这是因为我的范围是请求吗? 即使我调用同一页面中的其他按钮,保持指定给页面属性的值的最佳方法是什么

我的JSF版本是1.1


谢谢

是请求范围的生命周期仅限于从请求到响应。。如果要将其用于同一视图,可以使用ViewScope。是的,这将是一个范围问题。如果单击第一个按钮,您将有一个新的请求,并获得一个新的/已清除的bean实例。除非您使用JBoss Seam,它支持请求和会话之间更细粒度的作用域,否则您必须对bean会话进行作用域划分。

AFAIK JSF 1.1中没有视图作用域。因此它必须是session scope.Oops。。没有注意到版本。是的,您可以移动到会话范围,但是您需要更加小心。是的,对于许多情况,会话范围有点太宽。另一种可能是JBoss Seam,它解决了JSF 1.x的这个问题。我注意到,如果我将我的JSF页面元素属性设置为readonly=false,那么即使我单击第二个按钮保存值,它也会保留这些值。但是如果我使readonly=true,那么当我单击第二个按钮时,值将变为null。为什么会这样?