2011-12-21 3 views
2

아약스 요청을 사용하여 가져온 모든 레코드로 현재 표시된 레코드를 덮어 쓰려고합니다.아약스 가져온 레코드로 표시된 데이터 덮어 쓰기

private ModelAndView fetchRecords(Model model) { 


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

과 같이 JSP에서 레코드를 표시합니다 : 내 컨트롤러에서 초기에는 더 무슨 짓을

이다

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

그것은 잘 작동합니다.

는 지금은 컨트롤러에서 다음과 같이 아약스 요청을 매핑 :

@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

개념적으로 jQuery를 사용하여 이전 레코드를 보유한 컨테이너 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