1. 程式人生 > >Spring Mvc將Get和Post請求轉為Delete和Put請求

Spring Mvc將Get和Post請求轉為Delete和Put請求

  1. 不說那麼多介紹了,什麼restful風格url什麼的!直接開始。
  2. 在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>
  1. 將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>