Esta respuesta es para confirmar que la respuesta de axtavt funciona. Me tomó un minuto darme cuenta de lo que estaba sugiriendo, así que pensé en publicar un fragmento de código para ayudar a cualquier persona que venga detrás de mí. ¡Los elogios van a él, sin embargo! :)
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>
(...)
Y eso es todo! Una cosa de belleza; hasta ahora, hacer AJAX en Spring ha sido un gran dolor ... analizar Big ResponseBody's, crear enormes conjuntos de HTML al concatenar cosas en JS ... ugh ... No puedo creer lo simple y sorprendente que es este enfoque - ¡y no estaba al tanto hasta ahora! :)
Tengo el mismo requisito que OP, y esto suena prometedor pero no lo estoy siguiendo ... ¿podría elaborar o vincular a un tutorial que adopte este enfoque? – Bane
Soy tonto. Después de jugar durante un minuto, hizo clic en lo que quería. :) Elaboraré un breve ejemplo aquí en un minuto una vez que tenga algo funcionando. – Bane