【问题标题】:primefaces in-cell-editing control not update data in databaseprimefaces 单元内编辑控件不更新数据库中的数据
【发布时间】:2023-03-29 23:57:01
【问题描述】:
@Named(value = "viewtable")
@ManagedBean
@ViewScoped
public final class viewtable implements Serializable {

    ArrayList<viewbean> dlist = new ArrayList<viewbean>();
    ArrayList<Master> mlist = new ArrayList<Master>();


    public ArrayList<viewbean> getDlist() {
        return dlist;
    }

    public viewtable()  {
        get();
    }

    public void get() {
        try
        {
            InitialContext ic = new InitialContext();
            DataSource ds = (DataSource) ic.lookup("jdbc/mydsn");
            Connection con = ds.getConnection();

            PreparedStatement ps=con.prepareStatement("select * from master");
            ResultSet rs=ps.executeQuery();

            while(rs.next())
            {
                dlist.add(new viewbean(rs.getString(1), rs.getString(2),rs.getString(3),rs.getString(4),rs.getDate(5), rs.getString(6), rs.getBytes(7), rs.getString(8),rs.getString(9),rs.getString(10),rs.getString(11),rs.getDate(12),rs.getDate(13),rs.getString(14),rs.getString(15), rs.getString(16)));
            }
        }catch(Exception ex)
        {
            System.out.println("Conncetion pool db error-> "+ex);
        }
    }

    public void onEdit(RowEditEvent event) {
    }
}

以上代码在get()方法中没有更新数据库中的数据我做错了什么以及如何使用PrimeFaces连接数据库。
我使用托管 bean 将数据库中的详细信息保存为名为 mlist 的列表。

JSF:

<h:form id="dtform">
    <p:growl showDetail="true" id="mess"/>
    <p:dataTable id="dt1" scrollable="true" scrollWidth="700" var="mas"  value="#{viewtable.dlist}" editable="true">
        <f:facet name="header">
            Edit Here
        </f:facet>
        <p:column headerText="Regno" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText  value="#{mas.regno}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.regno}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Rollno" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.rollno}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.rollno}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Firstname" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.fname}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.fname}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Lastname" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.lname}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.lname}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="D.O.B" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.dob}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.dob}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Address" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.address}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.address}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Avatar" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.avatar}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.avatar}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Email" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.email}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.email}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Phno" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.phno}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.phno}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Dept" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.dept}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.dept}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Year" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.year}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.year}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Start" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.inidate}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.inidate}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="End" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.enddate}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.enddate}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Remarks" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.remarks}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.remarks}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Delivery" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.delivery}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.delivery}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Message" width="100">
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{mas.messdelivery}"/>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{mas.messdelivery}"/>
                </f:facet>
            </p:cellEditor>
        </p:column>
        <p:column headerText="Options" width="100">
            <p:rowEditor/>
        </p:column>
        <p:ajax event="rowEdit" listener="#{viewtable.onEdit}" update=":dtform:mess"/>
    </p:dataTable>
</h:form>

【问题讨论】:

  • 你能更改方法的名称吗?看来“get”是java中的一种保留字。
  • 我试过了,但还是有问题......请给我发一个示例代码,说明如何将 hibernate 与 primefaces 数据表集成
  • 你的方法有效吗?据我了解,您的代码与单元格编辑完全不同。首先你做一个数据库选择。你能发布你的主要面孔标签吗?
  • 兄弟,我发布了我的设计部分,但我在过去 1 周都面临这个问题,请提供一些想法
  • 您的 in edit 方法是托管 bean 中的 onEdit()。但是您尝试使用 get() 方法更新数据。你想在这个操作中使用休眠吗?看看这个primefaces.org/showcase-labs/ui/datatableEditing.jsf

标签: jsf primefaces


【解决方案1】:

我假设您已经在您的环境中配置了休眠,并将您的数据库映射到一个实体类。您可以相应地更新记录。

您可以访问行并更新记录,例如:

    public void onEdit(RowEditEvent event) {  
            YourHibernateEntity yourEntity = (YourHibernateEntity ) event.getObject());  
            SessionFactory sessFact = new AnnotationConfiguration().configure().buildSessionFactory();    
        Session sess = sessFact.openSession();
        Transaction  tran = sess.beginTransaction();
        sess.update(yourEntity );
        tran.commit();      

        } 

【讨论】:

    猜你喜欢
    • 2013-11-27
    • 2014-08-03
    • 2014-01-20
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多