【发布时间】:2011-03-15 22:50:53
【问题描述】:
输入字段框在所有页面中都填充有#{ad.userid}。即使当我输入有效值时,当在操作方法中访问时,它们也会在托管 bean 中提供 null 值。这怎么会发生,我该如何解决?
【问题讨论】:
-
请花点时间提供必要的细节,并以更易读的方式组织您的问题。
-
提示:不要假设回答您上一个问题的人也会看到这个问题。 ;-)
标签: jsf
输入字段框在所有页面中都填充有#{ad.userid}。即使当我输入有效值时,当在操作方法中访问时,它们也会在托管 bean 中提供 null 值。这怎么会发生,我该如何解决?
【问题讨论】:
标签: jsf
在我的例子中,输入值为空,因为对象被应用程序替换为其他对象。所以,我们正在提交另一个对象。
我们在一个动态惰性列表中工作,所以我们遇到了这个问题。
【讨论】:
我有同样的问题。就我而言,我的 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;
【讨论】:
我遇到过这样的事情,用的时候就解决了
<p:ajax event="change" update="componenet_ID" process="@form" listener="#{ManagedBeen.action}" />
【讨论】:
这可能是由于在h:commandButton 中不必要地包含immediate="true" 或在输入字段(或其父组件之一)中使用rendered、disabled 或readonly 属性引起的,这些属性取决于在后续请求中未正确保留的请求范围 bean。还有更多可能的原因,但太多了。上述至少是初学者中最常见的原因。
要了解有关 JSF 生命周期的更多信息,以便更好地了解“幕后”发生的一切,从而更好地掌握它,请查看这篇文章:Debug JSF lifecycle
【讨论】: