`
技术无涯苦作舟
  • 浏览: 11907 次
社区版块
存档分类
最新评论

关于@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".这说明视图解析器没启作用。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/views/"
          p:suffix=".jsp"/>


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

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

相关推荐

    @RestController和@Controller注解的区别1

    总结来说,`@Controller`和`@RestController`主要区别在于是否需要视图解析和数据格式化。`@Controller`适用于需要视图解析的场景,如传统的MVC架构,而`@RestController`适用于前后端分离的项目,它直接返回JSON或...

    SpringBoot http请求注解@RestController原理解析

    @RestController注解是SpringBoot框架中一个非常重要的注解,它是@Controller和@ResponseBody的组合体,主要用于标记当前类是一个控制器,并且所有的方法返回值都会被转换为Json字符串。 首先,我们来看一下@...

    @Controller、@RestController注解区别详解

    @Controller和@RestController是Spring框架中两个重要的注解,它们都是用于标识控制器类的,但是它们之间有着很大的区别。 首先,让我们来了解一下@Controller注解。@Controller是Spring框架提供的注解,用于标识...

    Spring @RestController注解组合实现方法解析

    在 Spring 框架中,@RestController 注解是一个非常重要的注解,它是 @Controller 和 @ResponseBody 两个注解的组合。通过使用 @RestController 注解,我们可以将 Controller 中的方法返回值直接作为响应体,而不...

    cifojava2021-javaee-5:带有@RestController 和 Swagger 的 Spring Boot 连接到 H2 本地数据库和用于图像的 MongoDB 云数据库

    Spring Boot JPA @RestController 没有视图和 Thymeleaf 带有图像public class EmployeeImageController和 Swagger 的 Rest Controller 应用程序属性 类:JPA @Entity Employee 和 CrudRepository 接口 数据库:H2...

    spring4.0 RestController.docx

    `@RestController`是`@Controller`和`@ResponseBody`两个注解的组合,使得处理HTTP请求变得更加简洁和高效。在这个改进之前,开发者通常会将`@Controller`用于创建控制器类,然后在每个处理方法上添加`@ResponseBody...

    SpringBoot+thymeleaf

    2.@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,...

    SpringBoot之Controller的使用详解

    一、@Controller和@RestController 在SpringBoot中,我们可以使用@Controller或@RestController来定义一个控制器。@Controller通常用于处理HTTP请求并返回视图,而@RestController则用于处理HTTP请求并返回JSON或...

    springMVC技术概述

    常用注解:@Controller @RestController(Controller+ResponseBody) @Service @Transactional @Mapper @AutoWired @RequestMapping--路由 @RequestParam--参数绑定(不同名参数或Map&lt;Object,String&gt;) @...

    动态生成Java springboot controller.docx

    1. `@RestController`注解:这个注解是`@Controller`和`@ResponseBody`的组合,主要用于创建RESTful API。当一个类被`@RestController`标记时,它的方法默认会将返回值转换为HTTP响应体。 2. `@Controller`注解:这...

    动态生成Java springboot controller (2).docx

    首先,`@Controller` 和 `@RestController` 是Spring MVC提供的两个关键注解,它们都用于标记一个类作为控制器。`@Controller` 注解通常用于创建MVC控制器,它可以返回视图名称,然后由ViewResolver解析为实际的视图...

    Controller对请求封装和返回

    `Controller对请求封装和返回`这个主题主要涉及如何有效地设计和实现Controller层,以便处理来自客户端的请求,并以适当的方式返回响应数据。ControllerUtils类的引入,通常是为了提供一些通用的方法,帮助简化...

    Spring 4 + REST Web Service + JSON Example with Tomcat

    Spring 4 Web Service类用@RestController 进行注释, 可以取代@Controller和@ResponseBody的使用。要映射REST Web服务URL,请使用注释@RequestMapping。Web服务方法参数包含@RequestParam,该属性具有defaultValue...

    spring boot 的常用注解使用小结

    除了 @RestController、@RequestMapping 和 @EnableAutoConfiguration 注解外,Spring Boot 中还有其他一些常用的注解,例如: * @Component:用于标记一个组件类 * @Service:用于标记一个服务类 * @Repository:...

    Spring Boot中Controller间的调用

    通过解耦和模块化设计,可以避免直接的Controller间调用,提高代码的可测试性和可维护性。 总之,虽然Spring Boot提供了Controller间调用的手段,但这并不是推荐的做法。正确的设计应当侧重于服务和组件的解耦,...

    springboot-controller的使用详解

    @RestController 是 Spring 4 之后新加的注解,它相当于 @Controller 和 @ResponseBody 组合使用。使用 @RestController 注解可以简化 Controller 的编写: ```java @RestController public class HelloController ...

    springmvc_controller_01

    在这个名为 "springmvc_controller_01" 的资源包中,我们很可能会找到关于如何配置和使用 Spring MVC 中的 Controller 的相关信息。下面我们将深入探讨 Spring MVC Controller 的核心概念、配置以及它在实际应用中的...

    类似Spring Controller 注解Demo

    在这个例子中,`@RestController`是`@Controller`和`@ResponseBody`的组合,意味着返回值会直接写入HTTP响应体,而不是被视图解析器处理。`@GetMapping("/hello")`注解告诉Spring,当收到GET请求并且URL是/hello时,...

    Spring注解 - 52注解 - 原稿笔记

    @ConfigurationProperties , @Controller , @CrossOrigin , @EnableWebMvc , @GetMapping , @Import , @JsonDeserialize , @JsonIgnore , @JsonIgnoreProperties , @JsonIgnoreType , @JsonInclude , @JsonProperty...

    Controller注解学习笔记.md

    整理笔记:在springboot中的各个注解的作用,包含@Controller、@ResponseBody、@RestController、@RequestMapping、@GetMapping 注解、@SpringBootTest注解:、@RequestParam注解、@Param注解、@pathVariable注解

Global site tag (gtag.js) - Google Analytics