SpringMVCWebアプリを持っています。その中には、別のリソースからリソースを削除することになっているボタンのあるフォームがあります。
<td>
<form action="/product-bases/${productBase.id}/positions/${position.id}" method="DELETE">
<input type="submit" value="delete" />
</form>
</td>
私のコントローラー:
@Controller
@RequestMapping(value = "/product-bases/{id}/positions")
public class ProductBasePositionController {
@RequestMapping(value = "/{positionId}", method = RequestMethod.DELETE)
public ModelAndView delete(@PathVariable Integer productBaseId, @PathVariable Integer positionId) {
したがって、理論的には、サーバーはコントローラーにルーティングする必要があります。しかし、残念ながらそうではないので、投稿;)
私は得ています
HTTP Status 405 - Request method 'GET' not supported
type Status report
message Request method 'GET' not supported
description The specified HTTP method is not allowed for the requested resource (Request method 'GET' not supported).
Apache Tomcat/7.0.19
明らかに、/ position / idのgetはまだ定義されていませんが、なぜ必要なのか、今のところ削除を実行したいと思います。
(また、これをSpring-test-mvcフレームワークからモックサーブレットで実行しようとしていますが、間にtomcatを実装していません。これにより、400-不正なリクエストが発生します。)
だから私はここで何が欠けていますか?
ああ、いくつかのコーナーを切り取るために:post and getは他のリソースで機能するので、残りのセットアップは問題ありません。
起動サーバーは私にさえ教えてくれます:
RequestMappingHandlerMapping [INFO] Mapped "{[/product-bases/{id}/positions/{positionId}],methods=[DELETE],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView our.view.controller.ProductBasePositionController.delete(java.lang.Integer,java.lang.Integer)
私と同じくらい混乱している人はいますか?そうでなければ、私に教えてください!