关于@RestController和@Controller 博客分类: Spring4.X spring
程序员文章站
2024-02-10 12:13:28
...
为了方便REST开发,Spring引入了@RestController注解,该注解已经标注了@ResponseBody和@Controller,源码如下:
最近遇见个问题,使用@RestController注解控制器后,发现控制器中的方法无法返回jsp页面,返回的是String,例如return "user/showUser";期望的应该是返回showUser.jsp,但实际上返回的就是实打实的String字符串"user/showUser".这说明视图解析器没启作用。
最后只能使用@Controller来配合视图解析器来返回指定页面。
所以如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
@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".这说明视图解析器没启作用。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/views/" p:suffix=".jsp"/>
最后只能使用@Controller来配合视图解析器来返回指定页面。
所以如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。