2011-12-21 10 views
2

現在表示されているレコードを、ajax要求を使用してフェッチしたすべてのレコードで上書きしようとしています。表示されたデータをajaxによってフェッチされたレコードで上書きする

private ModelAndView fetchRecords(Model model) { 


    model.addAttribute("records", getSelectedRecords()); 
    return new ModelAndView("list", "command", model); 
} 

として、JSP内のレコードを表示::私は私のコントローラでinitallyやった

がある

<c:forEach var="rec" items="${records}"> 
     ${rec} 
</c:forEach> 

それが正常に動作しています。

今、私はコントローラで、このようなAJAXリクエストマップ:

@RequestMapping(value = "/list") 
public @ResponseBody Object getServiceRequestSummaryPage(Model model, HttpSession session) { 

    return records= getAllRecords(); 
} 

その下のjQueryのメソッドにレコードを返すと、今のアラート

function loadallRecords(pn){ 
    $.get("list.html", { pageNumber: pn }, function(records) { 

     alert(records); 
    }); 
} 
<html> 
<body> 
<a href="" onClick="loadallRecords(${pn})" >Load all records</a> 
</body> 
</html> 

に示すが、私はどのように私を知りませんjspのすべてのレコードで選択したレコードを上書きすることができます。

私はすべてのレコードで以下のJSPを上書きしたい:

<c:forEach var="rec" items="${records}"> 
${rec} 
</c:forEach> 

助けてください。

答えて

3

コンセプトでは、以前のレコードを保持していたコンテナdiv(おそらくid値を使用しています)を見つけるために、.empty()を呼び出して前のレコードを消去し、次に置換レコード.append()とします。

<div id="container"> 
<c:forEach var="rec" items="${records}"> 
     ${rec} 
</c:forEach> 
</div> 

その後loadallRecordsが取得している場合は、:あなたは私たちの記録のためのHTMLを全く示さなかったので、元のページが、このように見えた場合

、我々は、仮想的に非常に具体的に助言することはできませんが、レコードのJSON配列は、お使いの置換機能は、次のようになります。

function loadallRecords(pn){ 
    $.get("list.html", { pageNumber: pn }, function(records) { 
     $container = $("#container"); 
     $container.empty(); 
     $.each(records, function(index, value) { 
      $container.append(value); 
     }) 
    }); 
} 

loadallRecordsは新しい結果を表しHTML文字列を取得している場合、それは次のように動作します:

function loadallRecords(pn){ 
    $("#container").load("list.html", { pageNumber: pn }); 
} 
+0

これにお答えください。http://stackoverflow.com/questions/26447194/how-do-i-update-a-cforeach-using-ajax-in-spring-project私は使い方がわかりません私のためのあなたの解決策。 – user3705478

関連する問題