что должен вернуть обработчик, чтобы модель не была обогащена объектом команды?ModelAndView - обогащенный, Model - обогащенный, Map - обогащенный ... все обогащается ImplicitModel.Могу ли я как-то остановить распространение неявной модели в представление ajaxResponse?
@ActionMapping(params = "javax.portlet.action=sample")
public void response(ActionRequest request, ActionResponse response, Bean bean) {
response.setRenderParameter("javax.portlet.action", "success");
List<MultipartFile> fileList = request.getFiles("file");
}
.....
@RequestMapping(params = "action=success")
public ModelAndView processSuccess(RenderRequest request, Model model) throws IOException {
Map map = new HashMap();
map.put("sucess", "sucess");
return new ModelAndView("ajaxResponse", map);
}
Затем параметры аргумента "модель" (implicitModel) переходит к следующему обработчику из-за этого условия в Spring AnnotationMethodHandlerAdapter.
if (returnValue instanceof ModelAndView) {
ModelAndView mav = (ModelAndView) returnValue;
mav.getModelMap().mergeAttributes(implicitModel);
return mav;
}
Класс View выглядит следующим образом:
@Component("someView")
public class SomeView extends AbstractView {
private Logger logger = Logger.getLogger(SomeView.class);
@Override
protected void renderMergedOutputModel(Map map, HttpServletRequest request, HttpServletResponse response)
throws Exception {
logger.info("Resolving ajax request view - " + map);
JSONObject jsonObj = new JSONObject(map);
logger.info("content Type = " + getContentType());
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObj.toString());
response.getWriter().flush();
}
}
Это происходит, даже если я удалю атрибут "Model model" из обработчика processSuccess.Просто параметры implicitModel распространяются в представление ajaxResponse, а не просто новую Карту с добавленным там параметром
Как остановить это распространение?
Это относится к этому вопросу , в spring-portlet-mvc это иногда необходимо, когда запрос пересылается обработчику на основе некоторого условия и передает его некоторым параметрам, которые должны быть отображены в View, но не исходному CommandObject, который уже был обработан.
СОЗДАН ВЫПУСК ДЖИРА - SPR-8267 , ПОЖАЛУЙСТА, ГОТОВИТЕСЬ, ЕСЛИ У ВАС ЕСТЬ ТО ЖЕ ПРОБЛЕМА.