Ta odpowiedź jest po prostu potwierdzić, że odpowiedź przez axtavt działa. Zajęło mi chwilę, zanim zdałem sobie sprawę z tego, co sugerował, więc pomyślałem, że opublikuję fragment kodu, by pomóc każdemu, kto będzie za mną. Ale Kudos do niego! :)
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>
(...)
I to jest to! Rzecz piękna; do tej pory robienie AJAX na wiosnę było ogromnym bólem ... parsowanie wielkich @ ResponseBody, budowanie ogromnych zestawów HTML przez łączenie rzeczy w JS ... ugh ... Nie mogę uwierzyć, jak proste i niesamowite jest to podejście - i nie wiedział o tym aż do teraz! :)
Mam taki sam wymóg jak OP, a to brzmi obiecująco, ale nie całkiem podążam ... czy mógłbyś rozwinąć, lub link do samouczka, który przyjmuje takie podejście? – Bane
Jestem głupi. Po chwili gry kliknął, co chciałeś. :) Podam krótki przykład tutaj za minutę, gdy tylko coś zadziała. – Bane