2013-11-21 57 views
2

我正嘗試使用允許用戶編輯表格中的單元格數據的主要面的特徵。我按照此鏈接實現它: Primefaces showcasePrimefaces在單元格編輯數據表中event.getNewValue()將舊值發送給bean

當我說在表中編輯單元格時,輸入的新值不會發送到bean。它仍然只顯示舊值。

我的代碼JSF:

<h:form id="testform">    
    <p:growl id="messages" showDetail="true" /> 
<p:outputPanel id="testContainer" deferred="true">   




    <p:remoteCommand name="oncompleteCellEdit" update="cars messages" /> 

    <p:dataTable id="cars" var="car" value="#{articlesbean.LMatpilotaccess1}" editable="true" editMode="cell" widgetVar="carsTable" update=":cars"> 

     <f:facet name="header"> 
      Matériel du pilotage et accessoires 
     </f:facet> 

    <p:ajax event="cellEdit" listener="#{articlesbean.onCellEdit}" oncomplete="oncompleteCellEdit()" update=":testform:messages" /> 

     <p:column headerText="Serie" style="width:25%">     

       <p:cellEditor > 
        <f:facet name="output"><h:outputText value="#{car.serie}" /></f:facet> 
        <f:facet name="input"><p:inputText id="modelInput16" value="#{car.serie}" style="width:96%"/></f:facet> 
       </p:cellEditor> 
     </p:column> 


    <p:column headerText="Cap" style="width:25%">     

       <p:cellEditor > 
        <f:facet name="output"><h:outputText value="#{car.cap}" /></f:facet> 
        <f:facet name="input"><p:inputText id="modelInput15" value="#{car.cap}" style="width:96%"/></f:facet> 
       </p:cellEditor> 
     </p:column> 

    </p:dataTable> 

</p:outputPanel> 

    </h:form> 

我的代碼豆

@ManagedBean(name="articlesbean") 

    @ViewScoped 
    public class ArticlesBean implements Serializable{ 

     @Inject 
     private ArticlesDAO articleDAO; 
     private Matpilotaccess1 matpilotaccess1; 

    public void onCellEdit(CellEditEvent event) { 
      Object oldValue = event.getOldValue(); 
      Object newValue = event.getNewValue(); 

      System.out.println("/////"+(event.getNewValue()); 
      System.out.println("/////"+(event.getOldValue()); 

     FacesContext context = FacesContext.getCurrentInstance(); 
      Matpilotaccess1 mpltiacc = context.getApplication().evaluateExpressionGet(context, "#{mpltiacc}", Matpilotaccess1.class); 
      articleDAO.Updatetable(mpltiacc); 
       } 
/////////Getters and Setters 
    } 

,並作爲

System.out.println("/////"+(event.getNewValue()); 
System.out.println("/////"+(event.getOldValue()); 

結果我在這兩個情況下拿到了舊值!

任何人都可以讓我知道我怎樣才能得到新值???我使用JBoss 7和primefaces4感謝

+0

是LMatpilotaccess1的一個列表?我知道這是2年前,但我偶然發現了這個問題。 – toscanelli

回答

-3

您需要@SessionScoped進行註解你的bean。

+0

我試過了,但同樣的問題仍然存在! –

相關問題