jsf - RowEditEvent 不发送新值primefaces

标签 jsf jsf-2 primefaces

当我向列表中添加一个新行时,它将被添加得很好。但是,尝试编辑该行将在编辑模式下打开它。但是我输入的任何新值都不会传递给支持 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;

最佳答案

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

<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>

关于jsf - RowEditEvent 不发送新值primefaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180378/

相关文章:

java - 是否可以通过客户端漏洞查看 HttpSession 属性?

jsf - Primefaces 数据表多选模式 - 延迟加载获取

java - 选中复选框时如何突出显示整行

jsf - p :resetInput does not reset the p:dialog when it is reopened

jsf - p :signature 的较小显示

css - 从 SelectOneMenu 中移除顶部阴影

java - Spring MVC 如何确定哪个 .xhtml 与给定的 Controller 相关联

java - 如何将动态创建的 HtmlInputText 组件的值绑定(bind)到 bean 属性?

jsf - 如何创建与正确上下文相关的链接?

java - 如何从后台bean更新jsf数据表