2017-08-10 5 views
0

jQyeryの開発に取り組んでおり、次の部分を実装するのが混乱しています。未定義のは、私は私が私のJavaコントローラクラスでjQueryを使用して出力として未定義になる

RequestMapping(メソッド= RequestMethod.GETを、持っている


<input name="find" type="text" maxlength="400" id="find"/> 
<button onclick="find()" > Find </button> 

function find() 
     { 
      var id = document.getElementById("find").value; 
      $("#datta").html(""); 

      $.getJSON("http://localhost:8080/Fathers/" + id +"/Sons", function(data) 
      { 
       for (var i in data) { 
        $('#datta').append("<p>ID: " + data.id + "</p>") 
        $('#datta').append("<p>fname: " + data.fname + "</p>") 

       }});} 

この部分と間違っているものをしていないように私は結果を得ます値= "/父親/父親/息子")

私のブラウザに入力した場合http://localhost:8080/Fathers/1/Sons 私はブラウザhttp://localhost:8080/Fathers/1/Sons/1 に入力した場合、私は配列

RequestMapping(方法= RequestMethod.GET、値= "/父親/ {fatherId} /サンズ/ {sonId}")

を得ます私は、単一のオブジェクト

父クラスを取得:

private int id; 
private String fname; 
private String lname; 
private Set<Son> sons = new HashSet<>(); 
public AppProduct(int id, String fname , String lname) { 
    this.id = id; 
    this.fname = fname; 
    this.lname = lname;} 

私の息子のクラス:

ID:未定義 まず名前:私を得る私の現在のコードで

private int id; 
private String fname; 
private String lname; 
private Set<Grandson> grandsons = new HashSet<>(); 
public AppProduct(int id, String fname , String lname) { 
    this.id = id; 
    this.fname = fname; 
    this.lname = lname; 

} 

未定義

答えて

0

for ... in文では、オブジェクトのプロパティをループ、あなたはあなたが望むようにあなたのループを使用することはできません。あなたはjquery.each()

$.each(data, function(key, value) { 
    $('#datta').append("<p>ID: " + value.id + "</p>") 
    $('#datta').append("<p>fname: " + value.fname + "</p>") 
} 

または基本forループのようなものを使用する必要があります。

for(var i = 0; i < data.length; i++){ 
    $('#datta').append("<p>ID: " + data[i].id + "</p>") 
    $('#datta').append("<p>fname: " + data[i].fname + "</p>") 
} 
関連する問題