bean操作方法中的输入字段值为null

时间:2010-07-14 15:54:30

标签: jsf

输入字段框在所有页面中都填充#{ad.userid}。即使我输入有效值,当在操作方法中访问时,它们在托管bean中提供null值。怎么会发生这种情况,我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

这可能是因为immediate="true"h:commandButton不必要,或者在输入字段中使用rendereddisabledreadonly属性(或者一个)它的父组件)取决于请求范围的bean,后者在后续请求中没有正确保留。有更多可能的原因,但这太多了,无法提及。前面提到的至少是初学者中最常见的原因。

要了解有关JSF生命周期的更多信息,以便您可以更好地了解“幕后”发生的事情,以便您可以更好地确定自己,请查看以下文章:Debug JSF lifecycle

答案 1 :(得分:2)

我有同样的问题。在我的例子中,我在我的bean中使用了这些导入:

import javax.faces.bean.RequestScoped;
import javax.inject.Named;

@Named(value = "fooBean")
@RequestScoped
public class FooBean {
...
}

而不是:

import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

另请参阅:https://stackoverflow.com/a/9921449/4402950

答案 2 :(得分:0)

我正面对这样的事情,当我用

时它就解决了
<p:ajax event="change" update="componenet_ID" process="@form" listener="#{ManagedBeen.action}" />

答案 3 :(得分:0)

在我的情况下,输入值是null,因为该对象被应用程序替换为其他对象。因此,我们正在提交另一个对象。

我们在动态的懒惰列表中工作,所以我们遇到了这个问题。