提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、restful是什么?
restful 资源的表现层状态转化
任何事物,只要有被引用到的必要,它就是一个资源。资源可以是实体,也可以只是一个抽象概念 。
表现层状态转化就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四 种基本操作。客户端通过HTTP方法可以获取资源的表述(包括数据和描述数据的元数据),如客户端通过 Accept头请求一种特定格式的表述,服务端则通过Content-Type告诉客户端资源的表述形式。
看Url就知道要什么;看http method就知道干什么;看http status code就知道结果如何
静态资源管理 webjars
WebJars是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web 前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在maven中央仓库 上。
使用方式
引入依赖 - > 直接访问
<linkrel='stylesheet’href=‘webjars/bootstrap/3.3.6/css/bootstrap.min.css’>
<scripttype='text/javascript’src=‘webjars/bootstrap/3.3.6/js/bootstrap.min.js’>
官网
二、使用步骤
@RequestMapping(“/guest”)
*放在类上面,代表类里面的方法是以此开头的
设置后用户发送/guest请求 就会根据请求的方式get、post、put、delete
来找到对应的方法并执行
@PostMapping
@GetMapping
@PutMapping
@DeleteMapping(“/{name}”)
@GetMapping(“/toUpdate/{name}”)
public String toUpdate(Model model,@PathVariable(“name”) String name)
将/guest/toUpdate/{name}格式的url映射到此方法
其中的name属性值 通过注解 @PathVariable(“name”)映射到方法的属性中
其中的“name” 代表去url中查找的属性值
直译的意思就是 从路径中获取name的值
修改功能是put
因为form表单只支持get和post
可以通过隐藏值的方法实现发送delete和put请求
以下是设置隐藏值方式
<input type="hidden" name="_method" value="put">
下面通过隐藏值方式把form表单修改为put请求 在发送请求的时候会改成put请求
form th:action="@{/guest}" th:object="${guest}" method="post" class="form-horizontal">
<input type="hidden" name="_method" value="put">
</form>
/guest/toUpdate/{name}路径的属性接收和以往不同。
通过注解 @PathVariable(“name”)映射到方法的属性中,直译的意思就是 从路径中获取name的值
@GetMapping("/toUpdate/{name}")
public String toUpdate(Model model,@PathVariable("name") String name){
Guest guest = guestService.get(name);
model.addAttribute("guest",guest);
return "update";
}
删除功能是delete 需要通过delete操作请求
1.引入jquery的jar
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
2.script使用的时候引入jquery
<script type="text/javascript" th:src="@{/webjars/jquery/3.4.1/jquery.js}"></script>
删除按钮
th:attr=“del_url=@{/guest/}+${guest.name}” 设置了一个del_url的属性
<button th:attr="del_url=@{/guest/}+${guest.name}" name="del_button">删除</button>
删除按钮借助的表单
可以通过隐藏属性值input的一行,实现put以及delete的提交方式。
<form method="post" id="del_form">
<input type="hidden" name="_method" value="delete">
</form>
通过js给按钮绑定点击事件 点击按钮会将给form表单设置action请求值并且提交发送请求
attr();获取节点属性名的值,相当于getAttribute(key)方法
prop(“action”,$(this).attr(“del_url”)) 设置action属性值设置为attr()取出的值
$(function () {
$("button[name='del_button']").click(function () {
$("#del_form").prop("action",$(this).attr("del_url")).submit();
});
});
以上结果为发送了一个/guest/value(点击值) 请求