我有一个用于 RESTful 资源 ( ServiceDirectoryController
) 的 Spring MVC 控制器,我想同时为 HTML(网页)和非 HTML(Web 服务)表示提供服务。我想使用视图名称和 JSP 来生成 HTML 表示,但HttpMessageConverter
s 用于其他表示。我怎么做?
我已经为非 HTML 表示实现了请求处理方法。我的内部(域模型)表示是ThingNames
,我有合适的消息转换器,所以请求处理方法很简单:
@RequestMapping(value = { "/directory/" }, method = RequestMethod.GET)
@ResponseBody
public ThingNames retrieveThings() {
...
}
现在我想为 JSP 页面添加请求处理方法。所以我需要一个指示视图名称并提供合适模型的方法。所以,显而易见的事情是:
@RequestMapping(value = { "/directory/" }, method = RequestMethod.GET)
public String retrieveThings(Map< String, Object > model) {
...
}
以视图名称作为返回值。
但这会奏效吗?Spring 是否足够聪明地计算出 HTML 表示应该由第二种方法处理,而对所有其他表示使用第一种方法?如果没有,我该如何处理 JSP/HTML 和非 JSP/HTML 表示?