Spring Mvc將Get和Post請求轉為Delete和Put請求
阿新 • • 發佈:2019-02-08
- 不說那麼多介紹了,什麼restful風格url什麼的!直接開始。
- 在web.xml檔案中配置
<!-- 配置 HiddenHttpMethodFilter: 把 POST 請求轉為 DELETE、PUT 請求 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class >
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.在springMvc配置檔案中配置靜態資源
<!--靜態資源交給預設的Servlet-->
<mvc:default-servlet-handler/>
<mvc:annotation-driven ></mvc:annotation-driven>
- 將Get請求轉為Delete請求
<!--一個刪除連結,為get請求-->
<a class="delete" href="emp/${emp.id}">Delete</a>
<!--利用js,將get請求轉為DELETE請求-->
<script type="text/javascript">
$(function() {
alert("hello");
$(".delete").click(function (){
var href=$(this).attr("href");
$("form").attr("action",href).submit();
return false;
});
});
</script>
<!--DELETE請求細節-->
<form action="" method="POST">
<input type="hidden" name="_method" value="DELETE" >
</form>
<!--接收DELETE請求的細節-->
@RequestMapping(value="/emp/{id}",method=RequestMethod.DELETE)
public String delete(@PathVariable("id") Integer id){
System.out.print(employeeDao.delete(id));
return "redirect:/emps";
}
5.Post請求轉為Put請求
<form:form action="${pageContext.request.contextPath}/emp" method="POST"
modelAttribute="employee"><br>
<c:if test="${employee.id == null }">
<!-- path 屬性對應 html 表單標籤的 name 屬性值 -->
LastName: <form:input path="lastName"/>
<form:errors path="lastName"></form:errors>
</c:if>
<c:if test="${employee.id != null }">
<form:hidden path="id"/>
<!-- 將POST請求轉化為PUT請求 -->
<input type="hidden" name="_method" value="PUT"/>
</c:if>
<br>
Email: <form:input path="email"/>
<input type="submit" value="Submit"/>
</form:form>