10、@Controller跟@RestController注解的使用

测试两个注解定义的类中方法的返回值:


  • @Controller:定义一个控制器类,
  • @RestController: 注解相当于 @Controller + @ResponseBody 合在一起的作用。
  • @ResponseBody:标记Controller类中的方法。把return的结果变成JSON对象返回。
  •         (如果没有这个注解,这个方法只能返回要跳转的路径即跳转的html/JSP页面。有这个注解,可以不跳转页面,只返回JSON数据)
  • @RequestMapping:给出外界访问方法的路径,或者说触发路径 ,触发条件。

@Controller注解返回字符串:


  我们都知道@Controller注解作用在类上面,这个类中方法的返回值,是一个jsp或者其他页面的名称,会跳转到指定的页面

有的时候并不希望它跳转到一个页面,而是想让它返回json字符串(配合@ResponseBody):

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author zhangzhixi
 */
@Controller
@RequestMapping("/some")
public class SomeController {

    @RequestMapping("/demo1")
    @ResponseBody
    public String test1(){
        return "Hello World!";
    }
}

浏览器访问:

@RestController注解返回字符串:


@RestController注解也是作用到类中,但是它当中方法的返回值是JSON类型,所以相当于:@Controller+@ResponseBody

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author zhangzhixi
 */
@RestController
@RequestMapping("/some")
public class SomeController {

    @RequestMapping("/demo2")
    public String test1(){
        return "Hello World!";
    }
}

浏览器访问:

原文地址:https://www.cnblogs.com/zhangzhixi/p/14316924.html