Мне интересно, возможно ли генерировать вывод ModelAndView программно, а не через параметр возврата контроллера. Например: У меня есть следующий метод, который возвращает скомпилированный HTML:Spring MVC: сгенерируйте ModelAndView программно
@RequestMapping(value = "/get-list", method = RequestMethod.GET, headers = BaseController.AJAX_HEADER)
public ModelAndView getList(@RequestParam(value = "page", required = true) Integer page,
@ActiveUser User activeUser) {
ModelAndView result = null;
try {
result = new ModelAndView("administration/events-log/list");
result.addObject("events", eventsLogService.getList(page, Config.RECORDS_PER_PAGE));
}
catch (Exception e) {
log(e, activeUser.getUsername());
}
return result;
}
То, что я хочу, чтобы создать что-то вроде этого:
@RequestMapping(value = "/get-list", method = RequestMethod.GET, headers = BaseController.AJAX_HEADER)
public @ResponseBody HashMap<String, Object> getList(@RequestParam(value = "page", required = true) Integer page,
@ActiveUser User activeUser) {
HashMap<String, Object> json = new HashMap<String, Object>();
try {
json.put("error", 0);
ModelAndView result = new ModelAndView("administration/events-log/list");
result.addObject("events", eventsLogService.getList(page, Config.RECORDS_PER_PAGE));
json.put("content", result);
}
catch (Exception e) {
/**/
}
return json;
}
поэтому объект JSON, который будет отослано обратно в клиент будет выглядеть: {'error': 0, 'content': compiled_html}
Любые мысли? Спасибо
И как я могу назвать средство визуализации JSP? – nKognito
@nKognito Это намного сложнее, чем кажется. Для каждого 'jsp' генерируется класс java. Этот класс отвечает за запись содержимого в ответ. Детали зависят от сервера. Имя класса может быть «org.apache.jsp.WEB_002dINF.myjsp_jsp», например. и вам нужно будет знать, какие методы вызывать в каком порядке. – zeroflagL
, но это только jsp, я имею в виду без каких-либо параметров модели ... Хорошо, поскольку я понимаю, что это невозможно сделать. Спасибо, в любом случае! – nKognito