由于缺少“root”元素,我无法填充我的dataTables。DataTables的JSON数据中缺少根元素
请参阅下面的代码,并帮助我如何解决它。
件1:
$('#example').DataTable({
//"ajax": "density.txt",
"ajax" : "getProductPropData",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"columns": [{
"data": "densityId"
}, {
"data": "densityDescription"
}, {
data: null,
className: "center",
defaultContent: '<a href="#" id="edit" class="edit" data-toggle="modal" data-target="#myModal">Edit</a>/<a href="#" id="delete">Delete</a>'
//defaultContent: '<button type="button" class="btn-default" data-toggle="modal" data-target="#myModal">Open Modal</button>'
}]
});
片2:我所doingin我的Struts 2 action类。
public String execute() throws Exception {
SessionFactory sf = (SessionFactory) ctx.getAttribute("SessionFactory");
ProductPropertyDAO pdao = new ProductPropertyDAOImpl(sf);
List<DensityGroup> dg = pdao.getProductPropListData("Density");
List<DensityGroup> list = new ArrayList<DensityGroup>();
System.out.println("SIZE is: " + dg.size());
for (int i = 0; i < dg.size(); i++) {
DensityGroup denpojo = new DensityGroup();
denpojo.setDensityId(dg.get(i).getDensityId());
denpojo.setDensityDescription(dg.get(i).getDensityDescription());
list.add(denpojo);
}
data = list;
System.out.println("JSON is :\n" + data);
return "success";
}
我的JSON数据从Chrome的网络标签是:
[{"densityDescription":"16 KG","densityId":"21"},
{"densityDescription":"Chitti","densityId":"22"}]
正确的数据应该是:
{"data" : [{"densityDescription":"16 KG","densityId":"21"},
{"densityDescription":"Chitti","densityId":"22"}]}
编辑在数据变量:
private List<DensityGroup> data;
public List<DensityGroup> getData() {
return data;
}
public void setData(List<DensityGroup> data) {
this.data = data;
}
DensityGroup.java
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name="DENGROUP")
public class DensityGroup{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column (name = "DEN_ID")
@SequenceGenerator(name="dengroupSeq",sequenceName="density_group_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="dengroupSeq")
private String densityId;
public String getDensityId() {
return densityId;
}
public void setDensityId(String densityId) {
this.densityId = densityId;
}
public String getDensityDescription() {
return densityDescription;
}
public void setDensityDescription(String densityDescription) {
this.densityDescription = densityDescription;
}
@Column (name = "DEN_DESC")
private String densityDescription;
}
你的java代码中'data'的类型是什么?你在这里指的是'data = list;' – Ravi
Hi Ravi,数据是我在我的action类中创建的变量,它有getter和setter。我编辑了这个问题。 –
你可以发布'DensityGroup'类吗? – Ravi