【发布时间】:2017-12-06 00:36:03
【问题描述】:
由于缺少“根”元素,我无法填充我的数据表。
请查看下面的代码并帮助我解决它。
第 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 部分:我在 Struts 2 动作课程中所做的事情。
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";
}
Chrome 网络标签中的我的 JSON 数据是:
[{"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,data 是我在动作类中创建的变量,它有 getter 和 setter。我已经编辑了问题。
-
你能发
DensityGroup类吗? -
是的,现在添加了
-
你可以试试我的解决方案。
标签: java json ajax struts2 datatables