Restful风格,@RestController注解 与 @Controller

宁静的风格

简单的理解,restful是一种url 风格,或者说是规范,在以前的网址中,假定一个业务,取得数据网址为http:// test / get,添加信息的网址为http:// test / post,类似这样。

但是在宁静风格中,取得数据和添加数据的网址均应为http:// test,方法为get或者post;所以,在restful风格中,一个网址就是一个资源,其形式类似于http:// xxx .com / xx / {id} / {id},例如某购物网站,产品有很多种类,每种产品下有很多子类型,那么http://shop.com/laptop/lenovo/1103  代表了联想1103型号电脑,而http://shop.com/laptop/hp/1024  代表了2014型号电脑。

在春天mvc中,有@requestparm,@ rerevree和@pathvariable三种注解来获得浏览器端的参数,其中前两者都是由浏览器提交交参参,而@pathvariable则是从网址中取得参数;假设代码如下:

@Requestmapping(value="/{category}/{brand}/{id},method=RequestMethod.POST)
    public void getbyid(@PathVariable("category") String category
                        @PathVariable("brand") String brand
                        @PathVariable("id") String id){
                        //具体代码略
                  }
在上述代码中,访问http://shop.com/laptop/hp/1024网址时,则,category为“laptop”,brand为”hp”,id为”1024”;所以说,在restful风格中,一个网址即表示了一个资源

二。restcontroller与控制器

假定一个用户对象,对象有很多属性(姓名,性别,年龄,出生日期,地址,电话) 

在我的了解中,这二者的区分为:@restcontroller为@controller和@ responsebody的结合 

在@Controller注解中,的报道查看的英文字符串,的英文或者字符串匹配的模板名称,即直接渲染视图,与HTML页面配合使用的,

在这种情况下,前后端的的配合要求比较高,JAVA后端的代码要结合的HTML的情况进行渲染,使用模型对象(或者的ModelAndView)的数据将填充用户视图中的相关属性,然后展示到浏览器,这个过程也可以称为渲染; 

对应视图user.jsp中的html代码:

java的示例代码如下:

@Controller
@RequestMapping(method = RequestMethod.GET, value = "/")
    public String getuser(Model model) throws IOException {
        model.addAttribute("name",bob);
        model.addAttribute("sex",boy);
        return "user";//user是模板名
    }
对应视图user.jsp中的html代码:
<html xmlns:th="http://www.thymeleaf.org">
<body>
    <div>
        <p>"${name}"</p>
        <p>"${sex}"</p>
    </div>
</body>
</html>
 
而在@restcontroller中,返回的应该是一个对象,即return一个user对象,这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。

 

java的端代码:

@RestController
@RequestMapping(method = RequestMethod.GET, value = "/")
    public User getuser( ) throws IOException {
        User bob=new User();
        bob.setName("bob");
        bob.setSex("boy");
        return bob;
    }

访问网址得到的是JSON字符串{“名”:”鲍勃”,”性”:”男孩”},前端页面只需要处理这个字符串即可。

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值