Questa risposta è solo confermare che la risposta di axtavt funziona. Mi ci è voluto un minuto per rendermi conto di quello che stava suggerendo, quindi ho pensato di pubblicare un frammento di codice per aiutare qualcuno che veniva dietro di me. I Complimenti vanno da lui, però! :)
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>
(...)
E questo è tutto! Una cosa di bellezza; fino ad ora, fare AJAX in primavera è stato un grande dolore ... analizzare big @ ResponseBody, costruire enormi set di HTML concatenando cose in JS ... ugh ... Non posso credere quanto sia semplice e fantastico questo approccio è - e non ne ero a conoscenza fino ad ora! :)
Ho lo stesso requisito di OP, e questo sembra promettente ma non sto seguendo abbastanza ... potresti elaborare o collegare a un tutorial che segua questo approccio? – Bane
Sono stupido. Dopo aver giocato intorno per un minuto, ha fatto clic su quello che volevi. :) Farò un breve esempio qui in un minuto una volta che avrò qualcosa di funzionante. – Bane