Итак, у меня есть приложение Spring MVC, и я хочу, чтобы определить, когда ресурс не поддерживает определенный тип носителя. Я думал о том, чтобы сделать это с помощью пользовательских преобразователей представлений ... Если ни один из преобразователей представлений не обнаружил успешного совпадения с именем представления, то выдается исключение, вызывающее неподдерживаемый тип носителя (код HTTP 406
).
Это в основном имеет смысл, потому что большинство распознавателей вернет null
, если не сможет разрешить данное имя представления. Проблема возникает с определителями вида, такими как InternalResourceViewResolver
, которые ВСЕГДА возвращают представление, даже если данное имя представления не существует.
В качестве примера вот как выглядят мои контроллеры:
@RequestMapping(value = "/viewTest", method = RequestMethod.GET)
public ModelAndView getViewData() {
Map<String, Object> myModel = new HashMap<String, Object>();
myModel.put("rightNow", (new Date()).toString());
return new ModelAndView("foo", "model", myModel);
}
Спасибо!