REST(Representational State Transfer,表述性状态转移)是一种软件风格。所谓的REST风格可以简单理解为:使用url表示资源时,每个资源都用一个独一无二的url来表示,并使用http方法表示操作,即准确描述服务器对资源的处理动作(get、post、put、delete),实现资源的增删改差。举例如下

/user/view/12  /userview.html?id=12

/user/delete/12  /userdelete.html?id=12

/user/modify/12   /usermodify.html?id=12

我们可以发现REST风格的url中最明显的就是参数不再使用“ ?”传递。这种风格可读性好,项目结构清晰,springmvc也提供对这种风格的支持。

由于url参数有时会传递中文,那么就会出现中文乱码问题,所以要根据实际情况灵活处理,混搭使用。@RequestMapping(value = "/view/{id}", method = RequestMethod.GET)

public String view(@PathVariable String id, Model model){

User user = userService.getUserById(id);

model.addAttribute(user);

return "userview";

}

@PathVariable在spring-web依赖下,所在包如下

对于REST风格url中的参数接受,springmvc提供了@PathVariable注解,可以将url中的{xxx}占位符参数绑定到控制器处理方法的入参中。

和?的使用相比较:

spingMvc REST的风格:

/user_show?id=120

/user/120

/user_delete?id=123

/user/123/delete

/user_updateInput?id=123

/user/123/update

/user_list

/users

/user/users

REST的风格不等于使用了REST技术

@PathVariable路径变量参数的使用 :value="/{username}" 路径参数一定要使用{}包裹起来;@RequestMapping(value="/{username}",method=RequestMethod.GET)public String show(@PathVariable String username,Model model) {model.addAttribute(users.get(username));return "user/show";}@RequestMapping(value="/{username}",method=RequestMethod.GET,params="json")@ResponseBodypublic User show(@PathVariable String username) {return users.get(username);}@RequestMapping(value="/{username}/update",method=RequestMethod.GET)public String update(@PathVariable String username,Model model) {model.addAttribute(users.get(username));return "user/update";}@RequestMapping(value="/{username}/update",method=RequestMethod.POST)public String update(@PathVariable String username,@Validated User user,BindingResult br) {if(br.hasErrors()) {//如果有错误直接跳转到add视图return "user/update";}users.put(username, user);return "redirect:/user/users";}@RequestMapping(value="/{username}/delete",method=RequestMethod.GET)public String delete(@PathVariable String username) {users.remove(username);return "redirect:/user/users";}

rest风格使用两个变量_REST风格,@PathVariable注解相关推荐

  1. rest风格使用两个变量_REST风格

    path = "/view/{参数}"# REST风格 介绍REST 我们这种风格是相当于带参数时,参数没有使用传统的?号后面带参数形式 我们可以清晰的看出来我们的参数是1 示例: ...

  2. rest风格使用两个变量_Restful风格接口浅析

    为什么使用RESTful 1.JSP技术可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代 ...

  3. rest风格使用两个变量_为什么要用Rest风格,接口应该怎么定义,除了Rest还可用什么方式写接口的?...

    这里是修真院后端小课堂,每篇分享文从 深度思考中的知识点--为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的? 1.背景介绍 REST ...

  4. ApachePOI导出exce,设置单元格风格的属性和设置字体风格的属性的两个工具类,POI宽度和excel 像素转换

    设置单元格风格的属性和设置字体风格的属性的两个工具类,POI宽度和excel 像素转换 /*** 功能:设置单元格风格的属性* */public static HSSFCellStyle SetCel ...

  5. 风格迁移应用_浅谈风格迁移(一)固定风格迁移

    -- 本文来自于VIP Lab的黄宇杰同学撰稿 风格迁移是一个有趣的计算机视觉话题.它被用于我们的日常生活中,比如我们常用的美图工具中的各类滤镜背后就是风格迁移技术.其实包括真人到二次元人物.二次元人 ...

  6. keras神经风格迁移_知识分享 | 神经风格迁移-把每一张图片都变成自己喜欢的样子...

    原标题:知识分享 | 神经风格迁移-把每一张图片都变成自己喜欢的样子 有 爱 就 有 阳 光 灿 烂 虽然大家总是自嘲,但还是要开开心心的哦~ 选择了打工这条路,也就选择了终身学习 ,今天也让小编带领 ...

  7. 深度学习项目二: 图像的风格迁移和图像的快速风格迁移 (含数据和所需源码)

    图像风格迁移是指,将一幅内容图的内容,和一幅或多幅风格图的风格融合在一起,从而生成一些有意思的图片 一:传统的图像风格迁移 为了让我们生成的迁移图在风格上与风格图片尽可能相似,在内容上尽可能与内容图相 ...

  8. 目前流行的装修风格_目前流行的装修风格都有哪些

    1 工业风格装修特点有哪些 工业风格装修需要注意什么 工业风格是当下非常流行的一类风格之一,这类风格受到很多年轻业主的喜爱.我身边很多朋友家里就采用了这类风格.如果你想要打造这类风格的话,那就需要先了 ...

  9. REST风格,@PathVariable注解

    REST(Representational State Transfer,表述性状态转移)是一种软件风格.所谓的REST风格可以简单理解为:使用url表示资源时,每个资源都用一个独一无二的url来表示 ...

最新文章

  1. Hibernate复习之Hibernate基本介绍
  2. 请问anroid怎么播放aac文件。
  3. java存储cookie_在java中如何用cookies保存数据?
  4. JAVA 10(多线程)
  5. cout输出数组_让程序从1开始一直执行++操作,10秒钟能输出最大的数是多少
  6. php switch正则表达式,switch的用法以及正则表达式简单的用法
  7. 活动文档服务器,服务器 活动
  8. Java实现的日历(原创)
  9. ECCV 2018丨YOLO遇上OpenPose,近200FPS的高帧数多人姿态检测
  10. 计算机组装维护与故障排除教材,电脑组装、维护与故障排除(第2版)
  11. X264码率控制总结——ABR,CQP,CRF
  12. 通过tasker实现朗读微信QQ文字消息
  13. oracle数据库重启命令是什么
  14. 赛百味的中英文菜单对照
  15. mscorsvw.exe
  16. android开发下载功能实现原理图,Android开发者掌握Android图像显示原理
  17. 【英语小作文】-相关
  18. 评测i9 13900hx和​​R9 7940HS选哪个 酷睿i913900hx和​​锐龙R97940HS对比
  19. sqlite引用SQLite.Interop.dll出错
  20. android基础学习

热门文章

  1. Android 手机运行 传奇4 (MIR4)
  2. js动态设置元素的宽高
  3. IDM(Internet Download Manager)最新一款 功能最全/电脑必备的下载器激活序列号版
  4. 全志a33核心板方案应用
  5. 整体橱柜效果图软件测试,4款橱柜效果图案例 真正的“好看”橱柜在这里
  6. 安装360网管版本,网站80端口被360entpulish服务占用,如何修改80端口!
  7. Crosswalk基本用法示例(Demo)
  8. 怎么自定义ZBrush 4R7中按钮颜色
  9. 仁兄,可曾听闻支持向量机?
  10. 最新微信防红、防封技术系统原理