1

私のコントローラーには次の方法があります

@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="">

上記でも、次のエラーが発生します

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

助けていただければ幸いです。

4

1 に答える 1

5

まず、 web.xmlでHiddenHttpMethodFilterが構成されていると仮定します。_methodwithvaluedeleteをDELETERequestMethodに変換する必要があります

次に、poidはリクエストの本文で渡されますが、コントローラーでは、URL自体で渡されることを期待しています。これは、Springがリクエストをマッピングできない理由を説明している可能性があります。

編集1:

URLを渡すpoidには、HTMLの生成時にフォームアクションに含める必要があります。ビューテクノロジー(私はFreemarkerを使用)によって異なりますが、次のような操作を行う必要があります。

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

ビューにバインドされているモデルにpoidが書き込まれていると仮定します。

于 2013-03-25T07:38:43.847 に答える