jQuery를 Spring MVC 애플리케이션에 통합했다. 내 JSP 페이지에서 양식을하고 난 컨트롤러에 양식을 보내 아약스 POST를하고있는 중이 야 :Spring MVC 컨트롤러에서 JQuery POST 및 성공 함수에서 파싱 결과
$("#myform").submit(function() {
$.ajax({
type : 'POST',
url : '/MyApp/search/searchResults',
data : $(this).serialize(),
dataType: 'html',
success : function(data) {
$("#tabs-4").append(data);
}
});
return false;
});
성공 기능은 새 탭에 데이터를로드합니다. 내가 아는 것은 data
은 내가 제출 한 원본 페이지의 HTML을 반환한다는 것입니다. 대신, 컨트롤러에서 반환되는 ModelAndView 개체를 구문 분석 할 수 싶습니다. 예를 들어 :
${searchResults.searchStr}
그것은 data
페이지의 HTML을 반환하는 정상인가요? 어쨌든 성공 함수에서 ModelAndView 객체를 구문 분석 한 다음 새 탭 div에 전달할 수 있습니까?
@RequestMapping(value = "/searchResults", method = RequestMethod.POST)
public ModelAndView searchResults(
@ModelAttribute(value = "search") SearchVO search,
BindingResult result) {
// Set the view and search object
ModelAndView mv = new ModelAndView("newSearch");
mv.addObject("searchResults", searchResults);
return mv;
}
감사 :
여기 내 컨트롤러 코드입니다!
브라우저에서 Firebug 또는 Developer Tools를 사용하여 AJAX에서 올바른 URL을 요청하고 올바른 데이터가 '데이터'를 통해 전송되고 있는지 확인할 수 있습니까? 또한 컨트롤러에서 디버그하여 요청이 특정 메서드에 적용되도록 할 수 있습니까? 그리고 당신의 "newSearch"보기가 당신이 기대하는 것을 가리키고 있습니까? AJAX 호출에'cache : false'를 추가 할 수도 있습니다. – Ian
컨트롤러에 중단 점을 추가 했으므로 정확한 데이터를 확실히 수신하고 있습니다. Firebug를 사용하여 ajax 호출을 디버깅 한 후 데이터에 원래 페이지의 html이 포함되어 있음을 알 수 있습니다. 나는 캐시를 추가하려고 시도했다 : false 그러나 나는 어떤 차이도 볼 수 없다. ... – littleK