Проверьте с помощью Firebug (вкладка «Сеть»), получили ли вы ответ Ajax, и посмотрите его содержимое.
Возможно, имеет смысл не возвращать всю HTML-страницу, а специфичный для JavaScript объект JSON, который рассказывает о том, что только что сделал контроллер. Возможно, добавьте свойство ajax GET в свой контроллер, где вы просто выводите простой JSON в тело ответа вместо возврата ModelAndView. Попробуйте использовать onSucess в Prototype. Может быть, это может сработать тогда
function submitNewAjxCall()
{
new Ajax.Request('SimpleApp/home.htm?ajax=true',
{
method: 'post',
parameters: $('formId').serialize(true),
onComplete: function(transport)
{
alert(transport.responseText);
}
});
}
Редактировать: Чтобы написать JSON напрямую (например, используя Flexjson в качестве сериализатора), вы можете использовать его в (аннотированном) Spring-контроллере:
@RequestMapping(value = "/dosomething.do", method = RequestMethod.GET, params = "ajax=true")
public void getByName(
@RequestParam(value = "name", required = true) String name,
HttpServletResponse response
)
{
response.setContentType("application/json");
try
{
OutputStreamWriter os = new OutputStreamWriter(response.getOutputStream());
List<DomainObjects> result = this.domainObjectService.getByName(name);
String data = new JSONSerializer().serialize(result);
os.write(data);
os.flush();
os.close();
} catch (IOException e)
{
log.fatal(e);
}
}