【问题标题】:JSF page navigation failing with NullPointerExceptionJSF 页面导航失败并出现 NullPointerException
【发布时间】:2011-11-21 19:19:42
【问题描述】:

我写了两页……一个是提交数据的表单,第二个是为了确认交易实际执行了一些计算。

我有一个托管 bean,即 FormDataBean 和一个类 Reservation.java,我为每个预订进行实例化。现在我在表单的末尾有一个提交按钮:

<h:commandButton value="Submit" action="confirmation"/>

在 bean 中我像往常一样有 setter 和 getter。在我定义的方法中,我创建了一个 Reservation 实例,然后将 beans 变量设置为实例变量,例如

reservation.startDate = startDate;
reservation.endDate = endDate;
reservation.checkRange();

最后一个方法,即 checkRange() 将使用赋值给实例变量来进行计算。它应该返回一个成功或失败的字符串。

现在当我在表单中输入数据并按提交时,它只是刷新页面但没有提交任何内容。因为它没有转到下一页:( 知道发生了什么吗?我不需要定义导航规则,因为在其他项目中,我进行了简单的计算并在下一页显示结果,它可以工作!请指教 谢谢,

【问题讨论】:

    标签: jsf


    【解决方案1】:

    你没有告诉我们一些更重要的细节,所以答案是一种猜测。

    由于您不使用导航规则,我假设您使用的是 JSF 2,不是吗?

    使用 JSF 2,您可以直接设置新的导航目标,无需导航规则。如果您的结果文件名为confirmation.xhtml,则转发到“确认”应该可以工作。检查那个。使用导航规则,您可以转发它做一个不同的文件。

    这部分应该可以正常工作。

    对于没有获取任何值的 bean,请确保您通过注解或 faces-config.xml 中的条目使用正确的范围。由于您有一个非常不常用的验证机制,您可能必须使用会话范围。

    正确的方法是使用 actionlistener 进行检查,然后根据检查设置导航。那么 bean 范围可能会更严格。

    【讨论】:

      【解决方案2】:

      您尝试过 action="confirmation?faces-redirect=true" 吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多