首页 > 代码库 > @RestController和@Controller的差异

@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的差异