我有一个表,用于将一个对象添加到另一个对象,并从另一个对象中删除一个对象。
这是我的控制者:
@Controller
@RequestMapping("/proj/{pid}/coupling/{r1}")
public class CouplingController {
@RequestMapping(method = RequestMethod.GET)
public String getAllCouplings( ){
return "riskCoupling";
}
@RequestMapping(value = "/{r1}", method = RequestMethod.POST)
public String saveCoupling( ){
return "/projects";
}
@RequestMapping(value = "/{r2}", method = RequestMethod.DELETE)
public String removeCoupling(){
return "/projects";
}
}
这是我的Thymeleaf观点
<td>
<form action = "#" th:action="@{/proj/{pid}/coupling/{r1}/{r2} (pid=${projectID},r1=${r1ID},r2=${r2.id})}" method = "post">
<input type="submit" name="Couple" value="Couple" class="btn btn-info" />
</form>
</td>
<td">
<form action = "#" th:action="@{/proj/{pid}/coupling/{r1}/{r2} (pid=${projectID},r1=${r1ID},r2=${r2.id})}" method = "delete">
<input type="submit" name="RemoveCoupling" value="RemoveCoupling" class="btn btn-info" />
</form>
</td>
当我转到网址/proj/{pid}/coupling/{r1}
时,我会收到概述,以便GET正常工作。
当我按下“情侣”按钮时,它可以正常工作。所以POST工作。
当我按下RemoveCoupling按钮时,我收到错误:
Request method "Get" not supported.
我真的不知道为什么会出现这个错误。
答案 0 :(得分:1)
由于浏览器遗憾地不支持HTML表单中除POST和GET之外的任何其他动词,因此它们只会发送POST / GET请求。这可能是为什么只有那个不起作用的原因。
查看更多:
答案 1 :(得分:0)
我用Thymeleaf - Button click to call http delete method修正了这个问题。
基本上在我的表单中放置一个隐藏字段。