Это контроллер abstract
, который я написал для обработки Ajax. Это на самом деле из Struts
примера на DispatchAction
.
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
AjaxResponse ajaxResponse = null;
String parameter = "command";
try {
String methodName = request.getParameter(parameter);
Method method = getMethod(methodName);
ajaxResponse = invokeMethod(request, response, method);
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error(e.getLocalizedMessage());
ajaxResponse = toXmlException(e);
}
if (ajaxResponse != null) {
//Finally
response.setContentType(ajaxResponse.getContentType());
response.setHeader("Cache-Control", "no-cache");
OutputStream out = response.getOutputStream();
out.write(ajaxResponse.getResponseText().getBytes());
out.flush();
}
return null;
}
Как видите, на сервер отправляется javascript, который затем DispatcherServlet
отправляется контроллеру. Затем контроллер invokes
вызывает правильный метод и возвращает ответ через response.getOutputStream().write(....)
.
Затем контроллер должен вернуть null
, чтобы DispatcherServlet ничего не делал взамен.
В моем случае AjaxResponse
- это интерфейс, и ответ может быть либо XmlAjaxResponse
, либо JsonAjaxResponse
.
Затем Java-клиент обрабатывает ответ, возвращаемый сервером (в данном случае контроллером).
Вам необходимо добавить ответ в вашу сторону. Надеюсь, это поможет.