如何使用" RestController"和"控制器"在一个应用程序中

时间:2017-03-01 09:57:32

标签: spring-mvc

1)在SingleFileUploadController上使用Controller,在jsp中给出正确的结果,当在SingleFileUploadController中使用RestController而不是Controller时,它不会指向jsp。为什么呢?

2)是否可以同时使用两者?

参考:

http://memorynotfound.com/spring-mvc-file-upload-example-validator/

由于

Harshal

3 个答案:

答案 0 :(得分:4)

  1. 因为RestController适用于不转发视图的控制器。它们的返回值作为响应主体发送。

  2. 是的,可以在同一个webapp中安装Controllers和RestControllers。如果您希望控制器的某些方法返回视图,而其他一些方法返回响应主体(即在RestController中起作用),则使用@Controller,并注释您的" REST"方法@ResponseBody

答案 1 :(得分:2)

回答有关@Controller和@RestController在一起的问题。

第一个控制器:

@RestController //specify that this class is a restful controller
@RequestMapping("/api")
public class RestHomeController {

第二控制器

@Controller //specify that this class is a controller
@RequestMapping("/")
public class HomeController {

答案 2 :(得分:0)

@Controller告诉api返回ModelAndView Object,它包含你的视图名,因此要查看jsp文件,而@RestController返回序列化响应。

不,你不能同时拥有它们,控制器要么用其中一个注释,但是@JB Nizet提到你可以使用@Controller和@ResponseBody为@RestController实现特定API的功能,无论如何这是自那以后使用的趋势在Spring 4之前,对RestController的支持并不存在。