【发布时间】:2013-11-20 15:00:02
【问题描述】:
我正在试验 DataTable - 单元格编辑,如 PrimeFaces showcase 所示,我想保存修改后的对象
方法onCellEdit定义如下:
public void onCellEdit(CellEditEvent event) {
Object oldValue = event.getOldValue();
Object newValue = event.getNewValue();
Matpilotaccess mpltiacc = (Matpilotaccess)event.getSource();
articleDAO.Updatetable(mpltiacc);
//event.getSource();
System.out.println("///////////////////////"+event.getOldValue());
System.out.println("///////////////////////"+event.getNewValue());
}
Matpilotaccess 类定义如下:
@Entity
@Table(name="matpilotaccess")
public class Matpilotaccess implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name="idmatpilotaccess1")
private int idmatpilotaccess1;
@Column(name="serie")
private String serie;
@Column(name="cap")
private int cap;
@Column(name="cal")
private String cal;
@Column(name="classe")
private int classe;
@Column(name="unite")
private String unite;
@Column(name="puhtva")
private float puhtva;
@Column(name="puttc")
private float puttc;
@Column(name="quantite")
private float quantite;
@Column(name="monthtva")
private float monthtva;
@Column(name="montttc")
private float montttc;
public Matpilotaccess1(int idmatpilotaccess1, String serie, int cap,
String cal, int classe, String unite, float puhtva, float puttc,
float quantite, float monthtva, float montttc) {
super();
this.idmatpilotaccess1 = idmatpilotaccess1;
this.serie = serie;
this.cap = cap;
this.cal = cal;
this.classe = classe;
this.unite = unite;
this.puhtva = puhtva;
this.puttc = puttc;
this.quantite = quantite;
this.monthtva = monthtva;
this.montttc = montttc;
}
public Matpilotaccess1() {
super();
}
//getters and setters
}
并抛出以下异常:
org.primefaces.component.datatable.DataTable cannot be cast to com.pfe.model.Matpilotaccess
如何继续将 primefacesDatatable 转换为 Matpilotaccess(我的实体)?
【问题讨论】:
-
event.getSource() 会返回一个DataTable,你为什么要把它转换成你自己的类型?
-
@JamesB 因为我想用修改后的对象替换旧对象
-
您已经使用 getNewValue() 检索了新值。您需要在保存之前将其设置到您的自定义类中。你能发布 Matpilotaccess 课程吗?
-
是的,您可以在编辑后的问题中找到它..
标签: jsf jsf-2 primefaces datatable