加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 编程Spring MVC控制器和用于HttpDelete的jsp

发布时间:2020-12-14 06:02:38 所属栏目:Java 来源:网络整理
导读:我试图通过删除链接(一个href)或删除按钮(窗体)删除页面上的实体.我正在使用删除按钮,因为链接要求“GET”而不是“POST” 这是打算这样做的JSP代码: tdform:form method="DELETE" action="/client/invoices/${invoice.id}"input type="submit" value="delet
我试图通过删除链接(一个href)或删除按钮(窗体)删除页面上的实体.我正在使用删除按钮,因为链接要求“GET”而不是“POST”

这是打算这样做的JSP代码:

<td><form:form method="DELETE" action="/client/invoices/${invoice.id}"><input type="submit" value="delete"></form:form></td>

生成的html是这样的:

<td><form id="command" action="/client/invoices/9" method="post"><input type="hidden" name="_method" value="DELETE"/><input type="submit" value="delete"></form></td>

所以,我很高兴.它有_method表示它是DELETE操作.这是我的控制器代码:

@RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
public String delete(@PathVariable("id") Long id,@RequestParam(value = "page",required = false) Integer page,@RequestParam(value = "size",required = false) Integer size,Model uiModel) {
        invoiceServiceHibernate.removeInvoice(id);
        return "redirect:/invoices";
}

那么,会发生什么是没有调用此方法.我有另一种方法,它执行POST来创建发票并单击删除按钮而不是创建发票.我的猜测是控制器将servlet视为POST请求,并使用第一个处理POST请求的方法,在这种情况下创建新发票.

我尝试使这个“RESTful”所以我希望这是/ invoice / id并使用POST,PUT,DELETE,GET但我不知道如何使用Spring MVC在控制器中编写代码.

我可以通过附加/ veroices / id / delete等“动词”并将控制器设置为

@RequestMapping(value = "/{id}/delete",method = RequestMethod.POST)

请注意,RequestMethod.POST但由于映射值显式具有/ id / delete,因此它不使用映射到/ invoices和/ invoices / id的默认POST.

我希望我很清楚.如果有人有任何建议或示例代码(强烈优先),我将不胜感激.我已阅读这些SO链接以供参考:
Link1
Link2
Link3

解决方法

你在web.xml中设置了 HiddenHttpMethodFilter吗?该过滤器将发布的方法参数转换为HTTP方法,并允许在Spring MVC表单标记中支持方法转换.
<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <servlet-name>servletName</servlet-name>
</filter-mapping>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读