如何在SpringMVC中使用REST风格的url
如何在SpringMVC中使用REST风格的url
1.url写法:
get:/restUrl/{id}
post:/restUrl
delete:/restUrl/{id}
put:/restUrl
2.controller写法:
1)GET请求的目标方法:
@RequestMapping(value="/restUrl/{id}", method=RequestMethod.GET)
public String get(Map<String, Object> map, @PathVariable("id") Integer id){
Object obj = new Object();
map.put("obj", obj);
return "success";
}
注意:
1.必须在@RequestMapping注解中添加method=RequestMethod.GET,表明这是一个处理get请求的目标方法
2.通过@PathVariable("id") Integer id注解,将url中的{id}值取出,并赋值给该注解修饰的入参id
2)POST请求的目标方法:
@RequestMapping(value="/restUrl", method=RequestMethod.POST)
public String post(Object obj){
System.out.println(obj);
return "success";
}
注意:
1.必须在@RequestMapping注解中添加method=RequestMethod.POST,表明这是一个处理post请求的目标方法
2.post请求的url中不需要写参数{id}
3)DELETE请求的目标方法:
@RequestMapping(value="/restUrl/{id}", method=RequestMethod.DELETE)
public String delete(@PathVariable("id") Integerid){
System.out.println(id);
return "success";
}
注意:
1.必须在@RequestMapping注解中添加method=RequestMethod.DELETE,表明这是一个处理delete请求的目标方法
2.url中必须带有参数{id}
4)PUT请求的目标方法:
@RequestMapping(value="/restUrl", method=RequestMethod.PUT)
public String put(Object obj){
System.out.println(obj);
return "success";
}
注意:
1.必须在@RequestMapping注解中添加method=RequestMethod.PUT,表明这是一个处理put请求的目标方法
2.url中不需要带有参数{id}
3.如果需要使用@ModelAttribute来进行一些修改前的操作(如:先去数据库查询一个实体,在使用put目标方法),请参考我的另一篇博客《@ModelAttribute注解的使用详解》
3.jsp页面中的链接写法:
1)get请求:
<a href="${pageContext.request.contextPath}/user/restUrl/{id}">get user</a>
注意:
1.这里的{id}不能直接写{id},而是你要动态赋值的
2)post请求:
<form action="${pageContext.request.contextPath }/restUrl" method="post" >
name:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
注意:
1.因为超链接是get请求,所以要使用post风格的url请求必须使用表单
2.必须表明表单的提交方式为method=post
3)delete请求:
<a class="delete_href" href="${pageContext.request.contextPath }/restUrl/{id}">remove</a>
<form id="delete_form" action="" method="post">
<input type="hidden" name="_method" value="DELETE">
</form>
$(function(){
$(".delete_href").on("click", function(){var href = $(this).attr("href");
$("#delete_form").attr("action", href).submit();
return false;
})
})
注意:
1.由于超链接只能发送get请求,我们需要发送delete请求的话,必须通过一个表单提交,将表单的post请求,转换成delete请求
2.在表单中添加一个隐藏域<input type="hidden" name="_method" value="DELETE">,能让表单在提交的时候将请求转换成delete请求
3.用js实现在点击超链接时,实际上提交的是表单。但是要注意在js之前,请先引入jquery文件
4)put请求:
<form action="${pageContext.request.contextPath }/restUrl" method="post" >
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="id" value="${id }">
name:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
注意:
1.跟delete请求类似,我们需要一个隐藏域<input type="hidden" name="_method" value="PUT">,来将post请求转换成put请求
如何在SpringMVC中使用REST风格的url的更多相关文章
- 如何在springMVC 中对REST服务使用mockmvc 做测试
如何在springMVC 中对REST服务使用mockmvc 做测试 博客分类: java 基础 springMVCmockMVC单元测试 spring 集成测试中对mock 的集成实在是太棒了!但 ...
- springMVC中添加restful 风格
RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...
- 如何在SpringMVC中获取request对象
1.注解法 @Autowired private HttpServletRequest request; <listener> <listener-class> org.spr ...
- C# 如何在PDF中绘制不同风格类型的文本
通过对控件Spire.PDF的测试,我们可以创建PDF文件并向文档中绘制文本.图片.表格.图形等内容,其中,对于绘制文本这一部分,Spire.PDF提供了三种字体类型来绘制文本,即: Standard ...
- springmvc中配置RESTful风格控制器
一般的http请求中其实只需要get和post就可以满足项目需求了,而为什么还要使用restful可能就是为了使请求url看起来更加直观,好看吧.. restful常用的请求方式:get,post,p ...
- springMVC 中的restful 架构风格
RESTful架构 : 是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. ...
- JavaEE开发之SpringMVC中的路由配置及参数传递详解
在之前我们使用Swift的Perfect框架来开发服务端程序时,聊到了Perfect中的路由配置.而在SpringMVC中的路由配置与其也是大同小异的.说到路由,其实就是将URL映射到Java的具体类 ...
- SpringMVC中controller返回图片(转)
本文转自:http://blog.csdn.net/u011637069/article/details/51112187 SpringMVC中controller通过返回ModelAndView然后 ...
- 8.springMVC中的RESTful架构风格
RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...
随机推荐
- MariaDB 数据库索引详解(9)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- 前端基础-html 列表标签,表格标签,表单标签
一.列表标签 1.ul(无序列表)标签 ul(unordered list)无序列表,ul下的子元素只能是li(list item),如下示例: <ul> <li>第一项< ...
- 转---写一个网页进度loading
作者:jack_lo www.jianshu.com/p/4c93f5bd9861 如有好文章投稿,请点击 → 这里了解详情 loading随处可见,比如一个app经常会有下拉刷新,上拉加载的功能,在 ...
- 修改oracle默认监听端口
修改oracle默认监听端口 oracle端口修改 主要是修改两个文件和修改oracle参数local_listener 1 查看当前监听状态 [oracle@test ~]$ lsnrctl sta ...
- centos7下elasticSearch安装配置
OS:Centos7x虚拟机 1H2Gjdk:1.8elasticsearch:5.6.0 1.下载“elasticsearch-5.6.0.tar.gz”解压到/usr/local/elastics ...
- Nodejs的模块系统
global对象 浏览器端JavaScript中的全局对象为"window",在浏览器中定义的变量都会成为"window"对象的属性. 不像浏览器端JavaSc ...
- [Leetcode]134.加油站
这一题是贪心不是模拟 是贪心不是模拟 是贪心不是模拟! 如果用模拟的做法会比较慢,也失去了做这一题的趣味了. 模拟的方法很简单,就是每一个加油站都做起点模拟一遍,试一下能不能完成一圈,能完成一圈就保存 ...
- POJ 2871
#include<iostream> #include<stdio.h> #include<iomanip> using namespace std; int ma ...
- 多态、抽象类、接口_DAY09
1:多态(掌握) (1)多态概念:一种事物的多种形态 (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象 (3)特点: 成员方法:编译看左边,运行看右边 运行:子类重写的方法 ...
- Windows7下无法打开chm(mk:@MSITStore:路径[cannot open the file mk@MSITstore:路径]),chm索引就关闭的解决办法
解决方法1是: 1,右键关联chm文件的“打开方式”到\Windows\HH.exe 2,在命令行运行regsvr32 itss.dll 3,在命令行运行regsvr32 hhctrl.ocx 方法2 ...