@RestController注解和@Controller注解的区别

在学习的过程中发现这个问题,写篇博客记录一下,方便以后查阅。

@RestController注解是@Controller和@ResponseBody注解的结合。

首先说明:

@Controller注解表明这是一个控制器类

在方法上加注解@ResquestMapping(value = "url", method = RequestMethod.POST)表示拦截以post请求的发送的url地址,如果不写method默认的话会拦截get和post请求

配合InternalResourceViewResolver视图解析器即可以返回页面如:return main跳转到mina.jsp

而不跳转页面,仅需返回JSON数据的话,可配合@ResponseBody注解。

相同的加@RestController注解也表明这是一个控制器类,与上面相同

在方法上加注解@ResquestMapping(value = "url", method = RequestMethod.POST)表示拦截以post请求的发送的url地址,如果不写method默认的话会拦截get和post请求

但是返回如return main则显示的是main而不是跳转到页面了,如果要跳转页面,这是需要用到ModelAndView,ModelAndView model = new ModelAndView();

调用这个类的model.addObject("name",value)方法相当于setAttribute("name",value)方法将value值存储为名name供前台取。

调用这个类的model.setViewName("jsp/main.jsp")即可跳转到jsp夹里的main.jsp页面了。

完整示例:

@Controller

public class MyController{

  @RequestMapping(value = "/hello", method = RequestMethod.GET)

  @ResponseBody

  public String myMethod(){

    return "hello word";

}

}

在地址栏输入localhost:8080/项目名/hello回车,页面将显示hello word

@Controller

public class MyController{

  @RequestMapping(value = "/hello", method = RequestMethod.GET)

  public ModelAndView myMethod(){

    ModelAndView model = new ModelAndView();

    model.setViewName("success");

    return model;

}

}

在地址栏输入localhost:8080/项目名/hello回车,将跳转到success页面

@RestController

public class MyController{

  @RequestMapping(value = "/hello", method = RequestMethod.GET)

  public String myMethod(){

    return "hi";

}

}

在地址栏输入localhost:8080/项目名/hello回车,页面将显示hi

@RestController

public class MyController{

  @RequestMapping(value = "/hello", method = RequestMethod.GET)

  public ModelAndView myMethod(){

    ModelAndView model = new ModelAndView();

    model.setViewName("success");

    return model;

}

}

在地址栏输入localhost:8080/项目名/hello回车,将跳转到success页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值