所以,我有一个Spring MVC应用程序,我想要一种方法来确定资源何时不支持特定的媒体类型。我正在考虑使用自定义View Resolvers执行此操作...如果视图解析器都没有找到视图名称的成功匹配,则抛出异常,触发不支持的媒体类型(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);
}
谢谢!
答案 0 :(得分:1)
您可以使用ContentNegotiatingViewResolver获得大部分内容,但如果您希望它根据缺少特定视图模板的不同行为,则必须延长InternalResourceViewResolver
。
答案 1 :(得分:0)
您还可以使用@RequestHeader
注释来定义方法支持的媒体类型。