java - 在 Spring 中确定不支持的媒体类型最理想的时间/地点?

标签 java spring rest spring-mvc

所以,我有一个 Spring MVC 应用程序,我想要一种方法来确定资源何时不支持特定媒体类型。我正在考虑使用自定义 View 解析器来执行此操作...如果没有一个 View 解析器找到 View 名称的成功匹配,则抛出一个异常,触发不支持的媒体类型(HTTP 代码为 406)。

这基本上是有意义的,因为如果无法解析给定的 View 名称,大多数 View 解析器将返回 null。问题出现在诸如InternalResourceViewResolver之类的 View 解析器中,即使给定的 View 名称不存在,它也始终返回 View 。

作为引用,这是我的 Controller 的样子:

@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);
}

谢谢!

最佳答案

您可以通过 ContentNegotiatingViewResolver 获得大部分内容,尽管听起来您必须扩展 InternalResourceViewResolver 如果您希望它根据缺少特定 View 模板而表现不同。

关于java - 在 Spring 中确定不支持的媒体类型最理想的时间/地点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889332/

相关文章:

java - 在 Java 中嵌入字体

java - Hashtable<String, Object> 找不到字符串

java - Spring Boot 与 JAX-RS (ReSTLet) 的简单微服务对比

mysql - Node.js 安全

java - Java 1.8.0_211更新后Shiro鉴权异常

java - 显示黑莓推送通知

java - 在glassfish中加载restful webapp时如何解决IllegalStateException?

rest - 如何使用来自服务堆栈 AuthService 的 cookie/ session 在客户端上加载经过身份验证的用户?

Spring Controller 不接受应用程序/json

Spring Boot 找不到国际化消息文件