【问题标题】:Input field values are null in bean action method [duplicate]bean操作方法中的输入字段值为空[重复]
【发布时间】:2011-03-15 22:50:53
【问题描述】:

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

【问题讨论】:

  • 请花点时间提供必要的细节,并以更易读的方式组织您的问题。
  • 提示:不要假设回答您上一个问题的人也会看到这个问题。 ;-)

标签: jsf


【解决方案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

    【讨论】:

    • 不错的答案!解决了我的问题,完全一样。
    【解决方案3】:

    我遇到过这样的事情,用的时候就解决了

    <p:ajax event="change" update="componenet_ID" process="@form" listener="#{ManagedBeen.action}" />
    

    【讨论】:

      【解决方案4】:

      这可能是由于在h:commandButton 中不必要地包含immediate="true" 或在输入字段(或其父组件之一)中使用rendereddisabledreadonly 属性引起的,这些属性取决于在后续请求中未正确保留的请求范围 bean。还有更多可能的原因,但太多了。上述至少是初学者中最常见的原因。

      要了解有关 JSF 生命周期的更多信息,以便更好地了解“幕后”发生的一切,从而更好地掌握它,请查看这篇文章:Debug JSF lifecycle

      【讨论】:

      • 确实,我使用了“禁用”,并且前一个 on blur ajax 事件和后一个 onclick commandbutton 事件之间的编排无法正常工作。我摆脱了 disabled 并且它照常工作(在这里描述:stackoverflow.com/questions/40596558/…)。
      猜你喜欢
      • 2017-09-13
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多