2014-07-16 7 views
1

get 405 오류 : 요청 메소드 'POST'은 Spring MVC JDBCTemplate CRUD 연산에서 지원되지 않습니다. DELETE 문에 접근요청 된 메소드 POST가 지원되지 않음, Spring MVC JDBCTemplate

How do I resolve 405 'POST' method not supported in the piece of code using Spring MVC and JDBCTemplate for crud operation?

URL은 : /JdbcTemplate/user/delete/9 여기에 방법의 그 컨트롤러 클래스 :

이제
@RequestMapping(value = "/edit/{id}", method = RequestMethod.GET) 
    public ModelAndView editUser(@PathVariable("id") Integer id, ModelMap model) { 

     ModelAndView mav = new ModelAndView(USER_EDIT_PAGE); 
     User user = userService.getUserById(id); 
//  User user = new User(); 
     model.addAttribute("user", user); 
     model.addAttribute("id", id); 
     return mav; 

    } 

    @RequestMapping(value = "/update", method = RequestMethod.POST) 
    public String updateUser(@ModelAttribute("user") User user) { 
     userService.updateUser(user); 
     return "redirect:/user/list"; 
    } 

    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) 
    public ModelAndView deleteUser(@PathVariable ("id") Integer id) { 

     ModelAndView mav = new ModelAndView(USER_LIST_VIEW); 

     userService.deleteUser(id); 

     String message = "Team was successfully deleted."; 
     mav.addObject("message", message); 

     return mav; 
    } 

URL이 전달 될 때 호출되는 것을 JSP에 대해 확실하지 : 목록. JSP

<%@ include file="/WEB-INF/views/includes/taglibs.jsp"%> 

<!DOCTYPE html> 
<html> 
<head> 
<c:import url="/WEB-INF/views/includes/meta.jsp" /> 
</head> 
<body> 
    <div class="container"> 
     <h2>User List</h2> 
     <table border="1" class="table table-bordered table-striped"> 
      <tr> 
       <td>Id</td> 
       <td>Name</td> 
       <td>City</td> 
       <td>Zip</td> 
       <td>Country</td> 
       <!-- <td>Edit</td> --> 
       <td>Delete</td> 
      </tr> 
      <tbody> 
       <c:forEach var="user" items="${users}"> 
        <tr> 
         <td>${user.id}</td> 
         <td><%-- <a href="/user/edit/${user.id}"> --%>${user.lastName},${user.firstName}<!-- </a> --></td> 
         <td>${user.city}</td> 
         <td>${user.zip}</td> 
         <td>${user.country}</td> 
         <td><form:form 
           action="${pageContext.request.contextPath}/user/delete/${user.id}" 
           method="POST"> 
           <input type="submit" class="btn btn-danger btn-sm" 
            value="Delete" /> 
          </form:form></td> 
         <%-- <td><a href="edit/${user.id}">Edit</a></td> 
         <td><a href="delete?id=${user.id}">Delete</a></td> --%> 
        </tr> 
       </c:forEach> 
      </tbody> 
      <tr> 

      </tr> 
     </table> 
    </div> 
    </div> 
    <td colspan="7"><a href="register">Add New User</a></td> 
    </center> 
</body> 
</html> 

edit.jsp를

<%@ include file="/WEB-INF/views/includes/taglibs.jsp" %> 

<!doctype html> 
<html> 
<head> 
    <c:import url="/WEB-INF/views/includes/meta.jsp" /> 
</head> 

<body> 
<div class="container"> 

    <c:if test="${empty user}"> 
     <h3>User not found: ${id}</h3> 
    </c:if> 
    <c:if test="${not empty user}"> 
     <h1>Edit User</h1> 
     <form:form method="POST" action="update" commandName="user"> 
      <form:hidden path="id" /> 
      <div class="form-group"> 
       <form:label path="firstName">First Name:</form:label> 
       <form:input path="firstName" class="form-control" placeholder="First Name"/> 
      </div> 
      <div class="form-group"> 
       <form:label path="lastName">Last Name:</form:label> 
       <form:input path="lastName" class="form-control" placeholder="Last Name"/> 
      </div> 
      <div class="form-group"> 
       <form:label path="city">City:</form:label> 
       <form:input path="city" class="form-control" placeholder="City"/> 
      </div> 
      <div class="form-group"> 
       <form:label path="zip">Zip:</form:label> 
       <form:input path="zip" class="form-control" placeholder="Zip"/> 
      </div> 
      <div class="form-group"> 
       <form:label path="country">Country:</form:label> 
       <form:input path="country" class="form-control" placeholder="Country"/> 
      </div> 
      <button type="submit" class="btn btn-default">Save</button> 
     </form:form> 
    </c:if> 

    <br><a href="/" class="btn btn-primary">Back</a> 

</div> 
</body> 
</html> 

감사합니다.

컨트롤러는 인식

답변

0

가/삭제에 도달/{ID} : list.jsp가에

@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) 
public ModelAndView deleteUser(@PathVariable ("id") Integer id) { 

당신은/삭제/{ID}에 POST를 전송하는 형태를 가질 수는있을 것 같다 있도록 문제 :

<form:form action="${pageContext.request.contextPath}/user/delete/${user.id}" method="POST"> 
    <input type="submit" class="btn btn-danger btn-sm" value="Delete" /> 
</form:form> 

양식의 메서드를 POST에서 GET으로 변경하면 문제가 해결됩니다. GET 및 POST에/delete/{id}를 허용하려면 deleteUser의 @RequestMapping에서 method = RequestMethod.GET을 제거하면 GET뿐만 아니라 모든 HTTP 메소드를 처리 할 수 ​​있습니다.

+0

deleteUser() 메소드의'/ delete/{id}'에서'method = RequestMethod.GET'을 제거하면 아무런 조치가 없거나 전송 된 요청으로 테이블의 레코드가 삭제되지 않습니다. – Thunder

관련 문제