0

我有一个 jsf 页面,其中包含很少的输入组件和两个 h:selectOneMenu 组件。

在第一个下拉列表中选择值时,我正在调用 valuechange 侦听器并提交表单。然后我根据从第一个下拉列表中选择的值将该值填充到另一个下拉列表中。现在我输入其他字段并单击提交按钮。

它向我抛出了下面提到的异常。

我的支持 bean 在请求范围内。如果我将其更改为在我的应用程序中不正确的会话 bean,我希望它能正常工作。我正在从“ValuechangeListener”方法将数据填充到 SelectItem 变量中。

JSF 版本是 1.2,此时我无法将其升级到 2.0。

4

1 回答 1

0

在这种情况下 RequestScope 是不够的。您至少需要 ViewScope。

这是因为每次请求都会重置 Bean。您的 Bean 的侦听器将被调用以获取该 bean 的另一个实例并改变它。之后,您在浏览器中进行了一些更改,并且下次发送请求时,您的 bean 已经被销毁。因此,您在听众中所做的一切都丢失了,这就是您遇到问题的原因。

如果您使用 ajax,或者停留在同一页面上并继续操作它,那么您应该切换到更高的范围。

于 2013-08-23T07:31:17.853 回答