在使用 PrimeFaces' <p:wizard>
component 运行应用程序时,我收到以下错误:
java.lang.NullPointerException
at java.io.PrintWriter.write(PrintWriter.java:473)
at com.sun.faces.application.view.WriteBehindStateWriter.write(WriteBehindStateWriter.java:127)
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:666)
at org.primefaces.component.wizard.WizardRenderer.encodeStepStatus(WizardRenderer.java:236)
at org.primefaces.component.wizard.WizardRenderer.encodeMarkup(WizardRenderer.java:158)
这是怎么引起的,我该如何解决?
最佳答案
您显然正在使用仍处于非最终阶段的 PrimeFaces 3.0。这显然是 PrimeFaces 中的一个错误。您需要将其报告给 PF 人员,以便他们可以修复它。
当某些 PrimeFaces 3.0 组件缺少明显的强制属性时,我自己也经常看到这种愚蠢的异常。例如,
<p:selectOneMenu>
<f:selectItem itemValue="foo" />
</p:selectOneMenu>
以上与 <h:selectOneMenu>
完美配合.项目值被用作组件的值和标签。 <f:selectItem>
也是如此被指定工作。但是,PrimeFaces <p:selectOneMenu>
期望 itemLabel
属性由于某种原因始终存在并通过 null
属性值,而无需事先直接检查响应编写器,这又会抛出一个完全令人困惑的 NullPointerException
,正是你得到的那个。添加 itemLabel
属性解决了它:
<p:selectOneMenu>
<f:selectItem itemValue="foo" itemLabel="foo" />
</p:selectOneMenu>
我不知道 <p:wizard>
中有任何类似的问题(我从未使用过它),但您可能想尝试复制 showcase example 的代码1:1,然后在此基础上进一步构建,而不是在没有任何指导的情况下从头开始创建。
关于google-app-engine - java.io.PrintWriter.write 处的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7950387/