@RestController和@Controller的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@RestController和@Controller的差异相关的知识,希望对你有一定的参考价值。

    SpringMVC现在使用越来越普及,在使用注解写控制器中发现,需要控制器页面跳转时,需要对类注解为@Controller,而此时,使用freemarker时,在类中写的restful接口会报cannot  resolve view with name...错误,有时候这类的问题解决方案是freemarker本身配置了templateLoaderPath,而在viewResolver中不需要配置prefix,且路径前缀必须配置在templateLoaderPath中,注意下freemarker配置就行了,在配置都正确时,则是由于注解的问题,这里由于要求返回的是json格式或者String,这里需要配置成@RestController或者在方法上注解@ResponseBody。

  网上通俗的说法是@RestController = @Controller + @ResponseBody

  在测试中,在类注解为@RestController时,控制器则无法进行页面跳转,而是返回字符串,无法返回页面。好像是配置的视图解析器InternalResourceViewResolver不起作用。所以在Controller中写rest接口的时候,要求返回json或字符串,则需要加@ResponseBody注解。

以上是关于@RestController和@Controller的差异的主要内容,如果未能解决你的问题,请参考以下文章

Spring 注解中@RestController与@Controller的区别

c_cpp basic_motor_controll.ino

@Controller和@RestController之间的区别

@Repository 和 @RestController 一起[关闭]

@Controller和@RestController的区别

@Controller和@RestController的区别?