【发布时间】:2015-11-17 18:18:56
【问题描述】:
当我向列表中添加新行时,它会被很好地添加。但是,尝试编辑该行将在编辑模式下打开它。但是我输入的新值不会传递给支持 bean。按编辑笔保存时发生崩溃。
当然会因为接收函数中的空指针异常而崩溃。
我以前用过。但我似乎无法让它在 Primefaces 5.1 或 5.2 中工作。
Aug 24, 2015 12:42:08 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
SEVERE: java.lang.NullPointerException
at com.sg.bowlingInfo.backingHallmastaren.onRowEdit(backingHallmastaren.java:127)
<p:dataTable id="hallmastaren" var="bi" value="#{backingHallmastaren.listHallmastaren}" editable="true">
<f:facet name="header">
Hallmästaren
</f:facet>
<p:ajax event="rowEdit" listener="#{backingHallmastaren.onRowEdit}" update=":form:msgs" />
<!-- p:ajax event="rowEditCancel" listener="#{backingHallmastaren.addNew}" update=":form:msgs" / -->
<p:column headerText="Position">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{bi.position }" /></f:facet>
<f:facet name="input"><p:inputText id="positionInput" value="#{bi.position}" style="width:100%"/></f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:rowEditor />
</p:column>
</p:dataTable>
<p:commandButton actionListener="#{backingHallmastaren.addNew}"
value="Add" update=":form:hallmastaren" render=":form:hallmastaren" />
接收函数
public void onRowEdit(RowEditEvent event) {
Hallmaster hm = (Hallmaster) event.getObject();
double hcp = (220 - hm.getAverage()) * 0.8;
【问题讨论】:
-
你的第 127 行是哪一行?
-
双 hcp = (220 - hm.getAverage()) * 0.8;
-
表示hm对象为
null或hm.getAverage()请调试检查 -
hm 是旧值。 getAverage 为 null,因为未传递新值。
-
所以现在你用 NULL 值做算术运算,所以它发送 NPE
标签: jsf jsf-2 primefaces