Câu trả lời này chỉ để xác nhận rằng câu trả lời của công trình axtavt. Tôi mất một phút để nhận ra những gì anh ta gợi ý, vì vậy tôi nghĩ tôi sẽ đăng một đoạn mã để giúp đỡ bất cứ ai đến sau tôi. Kudos đi với anh ta, mặc dù! :)
MyController.java
@Controller
public class MyController {
@RequestMapping(method=RequestMethod.GET, value="/mainView")
public ModelAndView getMainView(...) {
/* do all your normal stuff here to build your primary NON-ajax view
* in the same way you always do
*/
}
/* this is the conroller's part of the magic; I'm just using a simple GET but you
* could just as easily do a POST here, obviously
*/
@RequestMapping(method=RequestMethod.GET, value="/subView")
public ModelAndView getSubView(Model model) {
model.addAttribute("user", "Joe Dirt");
model.addAttribute("time", new Date());
return new ModelAndView("subView");
}
}
mainView.jsp
(...)
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function doAjaxPost() {
$.ajax({
type: "GET",
url: "subView",
success: function(response) {
$("#subViewDiv").html(response);
}
});
}
</script>
<input type="button" value="GO!" onclick="doAjaxPost();" />
<div id="subViewDiv"></div>
(...)
subView.jsp
(...)
<h3>
User Access Details
</h3>
<p>
${user} accessed the system on ${time}
</p>
(...)
Và đó là nó! Một điều đẹp; cho đến bây giờ, làm AJAX trong mùa xuân đã là một nỗi đau lớn ... phân tích cú pháp lớn @ ResponseBody, xây dựng bộ HTML khổng lồ bằng cách ghép các công cụ trong JS ... ugh ... Tôi không thể tin cách tiếp cận này đơn giản và tuyệt vời như thế nào - và đã không nhận thức được nó cho đến bây giờ! :)
Tôi có yêu cầu tương tự như OP, và điều này nghe có vẻ hứa hẹn nhưng tôi không hoàn toàn theo sau ... bạn có thể xây dựng, hoặc liên kết đến một hướng dẫn có cách tiếp cận này? – Bane
Tôi câm. Sau khi chơi xung quanh trong một phút nó nhấp vào những gì bạn muốn. :) Tôi sẽ làm việc một ví dụ ngắn ở đây trong một phút sau khi tôi nhận được một cái gì đó làm việc. – Bane