关于@RestController和@Controller

阅读更多
为了方便REST开发,Spring引入了@RestController注解,该注解已经标注了@ResponseBody和@Controller,源码如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}


最近遇见个问题,使用@RestController注解控制器后,发现控制器中的方法无法返回jsp页面,返回的是String,例如return "user/showUser";期望的应该是返回showUser.jsp,但实际上返回的就是实打实的String字符串"user/showUser".这说明视图解析器没启作用。



最后只能使用@Controller来配合视图解析器来返回指定页面。

所以如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

你可能感兴趣的:(spring)