Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC控制器返回视图或JSON_Spring_Spring Mvc - Fatal编程技术网

Spring MVC控制器返回视图或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

Spring控制器中的方法是否可能基于某些条件返回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客户端来说是一个非常糟糕的设计,但仍然可以使用评论中建议的类似方法。

您应该自己尝试解决问题,并在此处分享您的发现。对于初学者,请查看
视图解析程序