2011-08-10 56 views
0

我有一个JSF页面,其范围定义为请求。 在第一个按钮,我分配值页面元素的操作方法之一,因为当按下按钮时,JSF页面值被清除

bean.setEmpNo("abc"); 

在另一个按钮我打电话的方法来值保存到数据库中。当我点击通过点击第一个按钮分配的第二个按钮值被清除。

这是因为我的范围是要求吗? 即使我调用同一页面中的其他按钮,最好的方法是保持赋值给页面属性的值?

我的JSF版本为1.1

感谢

回答

0

是请求范围的生命是请求响应仅..如果你想为同样的看法,你可以使用ViewScope

+2

AFAIK JSF 1.1中没有视图范围。因此它必须是会话范围。 – Thomas

+0

糟糕..没有注意到版本。是的,你可以移动到会话范围,但你需要更加小心,然后 –

+0

是的会话范围对于很多情况来说太宽了。另一种选择可能是JBoss Seam,它解决了JSF 1.x的这个问题。 – Thomas

0

是的,这将成为范围问题。如果你点击第一个按钮,你有一个新的请求,并得到一个新的/清除你的bean的实例。你必须让bean会话的作用域(除非你使用的JBoss Seam在请求和会话之间支持更细粒度的作用域)。

+0

我注意到,如果我将我的JSF页面元素属性设置为readonly =“false”,那么即使当我单击第二个按钮来保存值时,它也会保留这些值。但是,如果我使readonly =“true”,那么当我单击第二个按钮时,该值将为空。为什么? – user75ponic

相关问题