Spring MVC控制器返回视图或JSON
Spring控制器中的方法是否可能基于某些条件返回JSON或视图 有人能举个例子吗 问候,,Spring MVC控制器返回视图或JSON,spring,spring-mvc,Spring,Spring Mvc,Spring控制器中的方法是否可能基于某些条件返回JSON或视图 有人能举个例子吗 问候,, Farhan这里有一个解决方案:您可以在控制器中使用两个方法,一个使用@ResponseBody注释并返回JSON值,另一个经典方法返回ModelAndView 这两种方法都可以使用具有不同参数(查询或头参数)的相同http端点。在我看来,将请求路由到预期格式的更简洁的方法是使用具有以下值的Content-Type头:text/html和application/json(或路径扩展.html或.json
Farhan这里有一个解决方案:您可以在
控制器中使用两个方法,一个使用@ResponseBody
注释并返回JSON值,另一个经典方法返回ModelAndView
这两种方法都可以使用具有不同参数(查询或头参数)的相同http端点。在我看来,将请求路由到预期格式的更简洁的方法是使用具有以下值的Content-Type
头:text/html
和application/json
(或路径扩展.html
或.json
,但我更喜欢头解决方案)
为此,您可以使用@RequestMapping
注释的consumes
属性:
更好的设计是将@RestController
注释类中返回JSON的方法和@Controller
注释类中仅为MVC保留的经典MVC方法与非restfull端点(通常不利于SEO)分开(两个控制器系列可以在@Service
注释类中使用相同的业务逻辑,这些注释类不公开http端点)
如果您真的想使用一种方法,并在某些条件下确定输出的格式,我认为这对您的http客户端来说是一个非常糟糕的设计,但仍然可以使用评论中建议的类似方法。您应该自己尝试解决问题,并在此处分享您的发现。对于初学者,请查看视图解析程序
。