если вы посмотрите на возвращаемые типы обработчиков , все это говорит о том, что модель обогащается командой commandObject до того, как она попадает в представление.
Как остановить это?Я хочу возвращать только те данные, которые я установил в обработчике, чтобы попасть в View, а не commandObject, который был передан в обработчик.
Map map = new HashMap();
map.put("sucess", "sucess");
return new ModelAndView("ajaxResponse", map);
Это потому, что обработка Spring AnnotationMethodHandlerAdapter объединяется для каждого возвращаемого типа.
if (returnValue instanceof ModelAndView) {
ModelAndView mav = (ModelAndView) returnValue;
mav.getModelMap().mergeAttributes(implicitModel);
return mav;
}
else if (returnValue instanceof Model) {
return new ModelAndView().addAllObjects(implicitModel).addAllObjects(((Model) returnValue).asMap());
}
else if (returnValue instanceof View) {
return new ModelAndView(returnValue).addAllObjects(implicitModel);
}
else if (handlerMethod.isAnnotationPresent(ModelAttribute.class)) {
addReturnValueAsModelAttribute(handlerMethod, handlerType, returnValue, implicitModel);
return new ModelAndView().addAllObjects(implicitModel);
}
else if (returnValue instanceof Map) {
return new ModelAndView().addAllObjects(implicitModel).addAllObjects((Map) returnValue);
}
else if (returnValue instanceof String) {
return new ModelAndView((String) returnValue).addAllObjects(implicitModel);
}