2017-07-02 4 views
0

'root'要素がないため、データテーブルにデータを設定できません。DataTableの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:私は私のStruts 2アクションクラスをdoinginています何。

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データクロームネットワーク]タブからである:

[{"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; 
} 
+0

Javaコードの 'data'の型は何ですか?あなたがここで参照していた 'data = list;' – Ravi

+0

こんにちはRavi、データはgetterとsetterを持つ私のアクションクラスで作成した変数です。私は質問を編集しました。 –

+0

'DensityGroup'クラスも投稿できますか? – Ravi

答えて

1

空の文字列に設定ajax.dataSrcオプションを使用します。例えば

"ajax" : { 
    "url": "getProductPropData", 
    "dataSrc": "", 
    "dataType": 'json', 
    "contentType": "application/json; charset=utf-8" 
} 

は、コードやデモンストレーションのためthis example参照してください。

+0

はい、私はそれを試みましたが、それでもデータを入力していません –

+0

@MittintiRamanaMurthy、私のソリューションが動作することを示す例を追加。 –

+0

私は間違いを見つけました。あなたは正しいです。 dataSrcはajaxの中になければなりません。 +1 –

関連する問題