简体   繁体   English

如何编辑数据表的行(JAVA + Primefaces + JSF + MYSQL)

[英]How to edit datatable's rows (JAVA + Primefaces + JSF + MYSQL)

I have a datatable page (Java + JSF + PRIMEFACES + Oracle GlassFish Server 3.1.2.2 + MYSQL). 我有一个数据表页面(Java + JSF + PRIMEFACES + Oracle GlassFish Server 3.1.2.2 + MYSQL)。 When i designate rows in my page and i click Show button, then you can see in the pop-up window this: 当我在页面中指定行并单击“ 显示”按钮时,您可以在弹出窗口中看到以下内容:

在此处输入图片说明

when I'm trying to edit the rows i click Edit 当我尝试编辑行时,我单击“ 编辑”。

在此处输入图片说明

The problem starts here, when i click check mark, then the row(s) are disappear: 问题从这里开始,当我单击复选标记时,该行消失了:

在此处输入图片说明

I see in the server log: 我在服务器日志中看到:

ThreadName=Thread-2;|javax.faces.model.NoRowAvailableException javax.faces.model.NoRowAvailableException at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:150) at javax.faces.component.UIData.getRowData(UIData.java:371) at org.primefaces.component.datatable.DataTable.queueEvent(DataTable.java:620) at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:44) at javax.faces.component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:132) at org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:395) at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:64) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787) at org.primefaces.component.api.UIData.processDecodes(UIData.java:232) at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallbac ThreadName = Thread-2; | javax.faces.model.NoRowAvailableException javax.faces.model.NoRowAvailableException javax.faces.model.ListDataModel.getRowData(ListDataModel.java:150)在javax.faces.component.UIData.getRowData(UIData .java:371)位于org.primefaces.component.datatable.DataTable.queueEvent(DataTable.java:620)位于org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.decode(AjaxBehaviorRenderer.java:44)处。 org.primefaces.renderkit.CoreRenderer.decodeBehaviors(CoreRenderer.java:395)处的component.behavior.ClientBehaviorBase.decode(ClientBehaviorBase.java:132)在org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:64)在javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787)在org.primefaces.component.api.UIData.processDecodes(UIData.java:232)在com.sun.faces.context.PartialViewContextImpl $ PhaseAwareVisitCallback.visit (PartialViewContextImpl.java:506)位于com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallbac k(PartialVisitContext.java:183) at org.primefaces.component.api.UIData.visitTree(UIData.java:675) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601) at javax.faces.component.UIForm.visitTree(UIForm.java:344) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252) at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(Fac org.primefaces.component.api.UIData.visitTree(UIData.java:675)处的k(PartialVisitContext.java:183)javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)处的javax.faces.component位于com.sun的javax.faces.component.UIForm.visitTree(UIForm.java:344)的.UIComponent.visitTree(UIComponent.java:1601)位于com.sun的javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)的。 com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252:org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57)上的faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)在com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)在javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)在com.sun.faces.lifecycle.Phase.doPhase(Phase) .java:101),位于com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118),位于javax.faces.webapp.FacesServlet.service(Fac) esServlet.java:593) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTa esServlet.java:593)位于org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)位于org.apache.catalina org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)的.core.StandardContextValve.invoke(StandardContextValve.java:175)在org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) )在org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)在org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)在org.apache.catalina.connector.CoyoteAdapter。 com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call(ContainerMapper.java:317)的service(CoyoteAdapter.java:231)com.sun.enterprise.v3.services.impl.ContainerMapper.service( com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)的com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTa)的ContainerMapper.java:195) sk.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:724) |#] sk.java:757)com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)com.sun.grizzly com.sun.grizzly的.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)com.sun.grizzly的DefaultProtocolChain.java:104).com.sun的DefaultProtocolChain.execute(DefaultProtocolChain.java:90)。 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)位于com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)处于grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:532)的com.sun.grizzly.util.AbstractThreadPool $ Worker.run的.sun.grizzly.ContextTask.run(ContextTask.java:71) (AbstractThreadPool.java:513),位于java.lang.Thread.run(Thread.java:724)|#]

Here it is My page: 这是我的页面:

<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets" 
      xmlns:p="http://primefaces.org/ui"
      >

    <h:head>    
            <title>Teszt</title>        
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>                        
            <link rel="stylesheet" type="text/css" href="style.css"/>            
    </h:head>

    <ui:debug />
    <h:form id="form">
        <p:fieldset legend="Teszt:">
            <p:dataTable id="dataTableTeszt" value="#{TesztBean.values}" var="c" paginator="true" rows="25" editable="true" filteredValue="#{TesztBeanBean.filteredOsszesito}" scrollable="true" scrollWidth="1500" scrollHeight="550"
                        paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                        paginatorPosition="bottom" rowsPerPageTemplate="5,10,15,20,30,40,50" 
                        selectionMode="multiple" selection="#{TesztBean.selectList}" rowKey="#{c.id}">

                        <p:column selectionMode="multiple" style="width:2%;text-align:center"/>

                        <p:column style="width: 130px; text-align: center" filterBy="#{c.id}" filterMatchMode="contains">
                            <f:facet name="header">ID:</f:facet>                                
                            <h:outputText value="#{c.id}" style="width: 130px; text-align: center"/>                                                
                        </p:column>


                        <p:column style="width: 130px; text-align: center" filterBy="#{c.name}" filterMatchMode="contains">
                            <f:facet name="header">Name:</f:facet>                                                                                                        
                            <h:outputText value="#{c.name}" style="width: 130px; text-align: center"/>                            
                        </p:column>

                        <p:column style="width: 130px; text-align: center" filterBy="#{c.age}" filterMatchMode="contains" >
                            <f:facet name="header">Age:</f:facet>                                                                                                        
                            <h:outputText value="#{c.age}" style="width: 130px; text-align: center"/>                            
                        </p:column>    


                        <p:column style="width: 230px; text-align: center" filterBy="#{c.kapcsolatfelvetel_megtortent}" filterMatchMode="contains" >
                            <f:facet name="header">Kapcsolatfelvétel megtörtént:</f:facet>                                                                                                        
                            <h:outputText value="#{c.kapcsolatfelvetel_megtortent}" style="width: 230px; text-align: center"/>                                
                        </p:column>               

                        <p:column style="width: 230px; text-align: center" filterBy="#{c.levelkuldesenek_datuma}" filterMatchMode="contains" >
                            <f:facet name="header">Levélküldés dátuma:</f:facet>                                                                                                        
                            <h:outputText value="#{c.levelkuldesenek_datuma}" style="width: 230px; text-align: center"/>                            
                        </p:column>

                        <p:column style="width: 230px; text-align: center" filterBy="#{c.kepzes_kezdete}" filterMatchMode="contains" >
                            <f:facet name="header">Képzés kezdete:</f:facet>
                            <h:outputText value="#{c.kepzes_kezdete}" style="width: 230px; text-align: center"/>                            
                        </p:column>

                        <p:column style="width: 230px; text-align: center" filterBy="#{c.kepzes_vege}" filterMatchMode="contains" >
                            <f:facet name="header">Képzés vege:</f:facet>
                            <h:outputText value="#{c.kepzes_vege}" style="width: 230px; text-align: center"/>                            
                        </p:column>

                        <p:column style="width: 1000px; text-align: center" filterBy="#{c.magyarazat}" filterMatchMode="contains">
                            <f:facet name="header">Megjegyzés:</f:facet>
                            <h:outputText value="#{c.magyarazat}" style="width: 1000px; text-align: center"/>                            
                        </p:column>   
                        <f:facet name="footer">                            
                            <p:commandButton id="addCategoryButton" value="Show" oncomplete="categoryDialog.show();" update=":form:dataTableTesztDialog :form:categoryDialog"/>
                        </f:facet>
        </p:dataTable>  
        </p:fieldset>

        <p:dialog id="categoryDialog" header="Category Detail" widgetVar="categoryDialog" closeOnEscape="true" resizable="false" style="width:1000px; height: 500px;" showEffect="explode" hideEffect="bounce">          
            <p:dataTable id="dataTableTesztDialog" value="#{TesztBean.selectList}" var="d" paginator="true" rows="25" editable="true">

                    <p:ajax event="rowEdit" listener="#{TesztBean.update(event)}"/>

                    <p:column style="width: 60px; text-align: center" headerText="Edit">
                        <p:rowEditor />
                    </p:column>

                    <p:column style="width: 130px; text-align: center">
                            <f:facet name="header">ID:</f:facet>                                                
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{d.id}" style="width: 130px; text-align: center"/>
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{d.id}"/>
                                </f:facet>
                            </p:cellEditor>
                    </p:column>

                    <p:column style="width: 230px; text-align: center">
                        <f:facet name="header">Kapcsolatfelvétel megtörtént:</f:facet>                                                
                        <p:cellEditor>
                            <f:facet name="output">
                                <h:outputText value="#{d.kapcsolatfelvetel_megtortent}" style="width: 230px; text-align: center"/>
                            </f:facet>
                            <f:facet name="input">
                                <p:inputText value="#{d.kapcsolatfelvetel_megtortent}"/>
                            </f:facet>
                        </p:cellEditor>
                    </p:column>               

                        <p:column style="width: 230px; text-align: center">
                            <f:facet name="header">Levélküldés dátuma:</f:facet>                                                
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{d.levelkuldesenek_datuma}" style="width: 230px; text-align: center"/>
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{d.levelkuldesenek_datuma}"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column style="width: 230px; text-align: center">
                            <f:facet name="header">Képzés kezdete:</f:facet>                                                
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{d.kepzes_kezdete}" style="width: 230px; text-align: center"/>
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{d.kepzes_kezdete}"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column style="width: 230px; text-align: center">
                            <f:facet name="header">Képzés vege:</f:facet>                                                
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{d.kepzes_vege}" style="width: 230px; text-align: center"/>
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{d.kepzes_vege}"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column style="width: 350px; text-align: center">
                            <f:facet name="header">Megjegyzés:</f:facet>                                                
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{d.magyarazat}" style="width: 350px; text-align: center"/>
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{d.magyarazat}"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>
                </p:dataTable>        
        </p:dialog>


    </h:form> 

</html>

Here it is my bean class: 这是我的bean类:

import java.awt.event.ActionEvent;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.RowEditEvent;
import org.primefaces.model.LazyDataModel;

@ManagedBean(name="tesztBean")
@SessionScoped
@ViewScoped

public class TesztBean{

    String URL = "jdbc:mysql://localhost:3306/osszesito?useUnicode=yes&characterEncoding=UTF-8";
    String USER = "User";        
    String PASSWORD = "Password";
    String DRIVER = "com.mysql.jdbc.Driver";

    private List<TesztSetGet> filteredOsszesito;
    private List<TesztSetGet> values;        
    private List<TesztSetGet> selectList;


    public List<TesztSetGet> getSelectList() {
        return selectList;
    }

    public void setSelectList(List<TesztSetGet> selectList) {
        this.selectList = selectList;
    }

    @PostConstruct
    public void init() {
        try {
            values = selectTesztTable();
        } catch (SQLException e) {

             e.printStackTrace();    
        }
    }


    public Connection getDBConnection() {

        Connection dbConnection = null;

        try {

            Class.forName(DRIVER);
            dbConnection= DriverManager.getConnection(URL, USER, PASSWORD);
            System.out.println("Connection completed.");

        } catch (SQLException e) { 

            System.out.println(e.getMessage()); 

        }catch(ClassNotFoundException cnfe){

           cnfe.printStackTrace();
           System.out.println(cnfe.getMessage());
           System.exit(-1);

       }

        return dbConnection; 
    }


    public List<TesztSetGet> selectTesztTable() throws SQLException{

        ResultSet rs = null;
        PreparedStatement pst = null;
        Connection con = getDBConnection();

        String stm = "select * from teszt order by age";

        List<TesztSetGet> records = new ArrayList<TesztSetGet>();


        try {

            pst = con.prepareStatement(stm);
            pst.execute();
            rs = pst.getResultSet();

         while(rs.next()){

            TesztSetGet objectMeghiv = new TesztSetGet();

            objectMeghiv.setId(rs.getInt(1));            
            objectMeghiv.setName(rs.getString(2)); 
            objectMeghiv.setAge(rs.getInt(3)); 
            objectMeghiv.setKapcsolatfelvetel_megtortent(rs.getString(4));            
            objectMeghiv.setLevelkuldesenek_datuma(rs.getString(5));
            objectMeghiv.setKepzes_kezdete(rs.getString(6));
            objectMeghiv.setKepzes_vege(rs.getString(7));
            objectMeghiv.setMagyarazat(rs.getString(8));                   
            records.add(objectMeghiv);

         }

         return records;


        }catch (SQLException e) {
            e.printStackTrace();         
        }catch (Exception e) {
            e.printStackTrace();         
        }finally{

            rs.close();
            pst.close();            
            con.close();

     }

      return records;

    }


    public List<TesztSetGet> getValues() { 

        return values; 

    }



    public void update(RowEditEvent event) {

        TesztSetGet edittedObject = (TesztSetGet) event.getObject();        

        Connection connection = null;
        PreparedStatement pst = null;
        ResultSet rs = null;

        String sql = "update teszt set kapcsolatfelvetel_megtortent=?, levelkuldes_datuma=?, kepzes_kezdete=?, kepzes_vege=?, megjegyzes=?  where id=?";

        try{

            connection = getDBConnection();                                                                       
            pst = connection.prepareStatement(sql);



            pst.setString(1, edittedObject.getKapcsolatfelvetel_megtortent());
            pst.setString(2, edittedObject.getLevelkuldesenek_datuma());
            pst.setString(3, edittedObject.getKepzes_kezdete());
            pst.setString(4, edittedObject.getKepzes_vege());
            pst.setString(5, edittedObject.getMagyarazat());
            pst.setInt(6, edittedObject.getId());

            pst.executeUpdate();
            pst.close();
            connection.close();

        }catch(SQLException se){
            se.printStackTrace();
            se.getMessage();
         }catch(Exception e){
             e.printStackTrace();
             e.getMessage();
         }    


    }

    public List<TesztSetGet> getFilteredOsszesito() {
        return filteredOsszesito;
    }

    public void setFilteredOsszesito(List<TesztSetGet> filteredOsszesito) {
        this.filteredOsszesito = filteredOsszesito;
    }

}

Here it is my Set and Getter class: 这是我的Set和Getter类:

public class TesztSetGet {

   private int id;    
   private String name;
   private int age;   
   private String kapcsolatfelvetel_megtortent;
   private String levelkuldesenek_datuma;
   private String kepzes_kezdete;
   private String kepzes_vege;
   private String magyarazat;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getKapcsolatfelvetel_megtortent() {
        return kapcsolatfelvetel_megtortent;
    }

    public void setKapcsolatfelvetel_megtortent(String kapcsolatfelvetel_megtortent) {
        this.kapcsolatfelvetel_megtortent = kapcsolatfelvetel_megtortent;
    }

    public String getLevelkuldesenek_datuma() {
        return levelkuldesenek_datuma;
    }

    public void setLevelkuldesenek_datuma(String levelkuldesenek_datuma) {
        this.levelkuldesenek_datuma = levelkuldesenek_datuma;
    }

    public String getKepzes_kezdete() {
        return kepzes_kezdete;
    }

    public void setKepzes_kezdete(String kepzes_kezdete) {
        this.kepzes_kezdete = kepzes_kezdete;
    }

    public String getKepzes_vege() {
        return kepzes_vege;
    }

    public void setKepzes_vege(String kepzes_vege) {
        this.kepzes_vege = kepzes_vege;
    }

    public String getMagyarazat() {
        return magyarazat;
    }

    public void setMagyarazat(String magyarazat) {
        this.magyarazat = magyarazat;
    }

}

How can I edit the rows properly? 如何正确编辑行?

Thank you very much, 非常感谢你,

Firstly, you have to know about kind of scopes: 首先,您必须了解范围的种类:

  • Request. 请求。
  • View. 视图。
  • Session. 会议。
  • Application. 应用。

The scope is the time of life of your data, you must use only one, you have two scopes in your code: 作用域是数据的生命周期,您只能使用一个,代码中有两个作用域:

@SessionScoped
@ViewScoped

I recommend you to use ViewScoped, but you think about how much time you want your data live, if you choose ViewScoped, your data would live while you don't change the view or the page, if you choose SessionScoped, your data would live while you don't logout. 我建议您使用ViewScoped,但是请考虑要保留数据的时间,如果选择ViewScoped,则数据将保留,而您不更改视图或页面,如果选择SessionScoped,则数据将保留当您不注销时。

Now, you have to update the list of your table. 现在,您必须更新表列表。 You have: 你有:

<p:dataTable id="dataTableTeszt" value="#{TesztBean.values}" var="c" paginator="true" rows="25" editable="true" filteredValue="#{TesztBeanBean.filteredOsszesito}" scrollable="true" scrollWidth="1500" scrollHeight="550"
                        paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                        paginatorPosition="bottom" rowsPerPageTemplate="5,10,15,20,30,40,50" 
                        selectionMode="multiple" selection="#{TesztBean.selectList}" rowKey="#{c.id}">

The main list of your table is values value="#{TesztBean.values}" , when you call to update method, you have to update your values list: 表的主列表是值value="#{TesztBean.values}" ,当调用update方法时,必须更新值列表:

public void update(RowEditEvent event) {

        TesztSetGet edittedObject = (TesztSetGet) event.getObject();        

        Connection connection = null;
        PreparedStatement pst = null;
        ResultSet rs = null;

        String sql = "update teszt set kapcsolatfelvetel_megtortent=?, levelkuldes_datuma=?, kepzes_kezdete=?, kepzes_vege=?, megjegyzes=?  where id=?";

        try{

            connection = getDBConnection();                                                                       
            pst = connection.prepareStatement(sql);



            pst.setString(1, edittedObject.getKapcsolatfelvetel_megtortent());
            pst.setString(2, edittedObject.getLevelkuldesenek_datuma());
            pst.setString(3, edittedObject.getKepzes_kezdete());
            pst.setString(4, edittedObject.getKepzes_vege());
            pst.setString(5, edittedObject.getMagyarazat());
            pst.setInt(6, edittedObject.getId());

            pst.executeUpdate();
            pst.close();
            connection.close();

            //UPDATE VALUES LIST WITH NEW DATA

        }catch(SQLException se){
            se.printStackTrace();
            se.getMessage();
         }catch(Exception e){
             e.printStackTrace();
             e.getMessage();
         }    


    }

I don't know how you can do it, but you can see the primefaces website, there are some samples about this, the idea is to update the main list of your table, values list in your case. 我不知道如何做到这一点,但是您可以看到primefaces网站,其中有一些示例,其想法是更新表的主列表,并根据情况更新值列表。

I hope this information helps you. 希望这些信息对您有所帮助。

Good luck. 祝好运。

PS. PS。 If my english is bad, I am willing to receive comments. 如果我的英语不好,我愿意收到评论。 =P = P

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM