2013-03-25 10 views
1

나는이 아직도 다음과 같은 오류봄 REST 방법

WARN : org.springframework.web.servlet.PageNotFound - Request method 'DELETE' not supported

를 얻을 수 위의 내 컨트롤러

@RequestMapping(value = "processPurchase/{poid}", method = RequestMethod.DELETE) 
public String processOrder(@PathVariable int poid) { 
    // do some processing 
    return acceptPurchaseForm; 
} 

내 HTML

<form id="purchase-list-form" class="form-horizontal" action="/MyNewApp/processPurchase/" method="post"> 
<input type="hidden" name="_method" value="delete"> 
<input type="hidden" name="poid" value=""> 

에서 다음과 같은 방법

도움을 주시면 감사하겠습니다.

답변

5

우선, 귀하의 web.xml에 HiddenHttpMethodFilter이 구성되어 있다고 가정합니다. DELETE RequestMethod _method을 DELETE RequestMethod로 변환해야합니다.

두 번째로 poid은 요청 본문에 전달되지만 컨트롤러에서는 URL 자체가 전달 될 것으로 예상됩니다. 이것은 Spring이 요청을 매핑 할 수없는 이유를 설명 할 수 있습니다.

편집 1 :

이 URL에 poid을 통과하려면, 당신은 당신의 HTML이 생성 될 때 폼 액션에 포함해야합니다. 그것은 당신의 뷰 기술 (나는 프리 마커를 사용)에 따라 달라집니다하지만 당신은 이런 식으로 뭔가를해야 할 것 :

<form action="/MyNewApp/processPurchase/${poid}" method="post"> 

는 POID이보기에 바인더 제본 된 모델에 기록된다고 가정.

+0

URL에 매개 변수를 전달하는 방법에 대한 샘플을 보여줄 수 있습니까? – abiieez

+0

업데이트 된 답변보기 – arahant

+0

감사합니다. 작동하고 있습니다. – abiieez