RowEditEvent不发送新值primefaces

时间:2015-08-24 10:45:47

标签: jsf jsf-2 primefaces

当我在列表中添加新行时,它会被添加得很好。但是,尝试编辑该行将在editmode中打开它。但是我输入的新值都没有传递给辅助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;

1 个答案:

答案 0 :(得分:0)

由于某些奇怪的原因,移动表单标签纠正了问题。 原始形式:

<h:form id="form"> <--- Not working
<p:growl id="msgs" showDetail="true"/>

    <p style="float:right;">Telefon: 0418-663930</p>
    <p class="Three-Dee">Svalövs Bowlinghall</p>

    <ui:include src="event.xhtml" />

    <ui:include src="menubar.xhtml" />

    <div id="right">

    <p:dataTable id="hallmastaren" var="bi" value="#{backingHallmastaren.listHallmastaren}" editable="true">
        <f:facet name="header">
           Hallmästaren
       </f:facet>

在div中移动表单标签可以解决问题。

<p:growl id="msgs" showDetail="true"/>

    <p style="float:right;">Telefon: 0418-663930</p>
    <p class="Three-Dee">Svalövs Bowlinghall</p>

    <ui:include src="event.xhtml" />

    <ui:include src="menubar.xhtml" />

    <div id="right">
    <h:form id="form"> <----- Working
    <p:dataTable id="hallmastaren" var="bi" value="#{backingHallmastaren.listHallmastaren}" editable="true">
        <f:facet name="header">
           Hallmästaren
       </f:facet>