Java 如何在Freemarker DropWizard中使用按钮调用方法

Java 如何在Freemarker DropWizard中使用按钮调用方法,java,forms,freemarker,dropwizard-templates,Java,Forms,Freemarker,Dropwizard Templates,我试图在Freemarker模板中使用按钮调用delete方法。我认为这就像在我的资源类中为该方法定义一条路径一样简单,然后将表单的操作指向该路径;但是,当我按下按钮时,什么也没有发生 以下是按钮的代码: <form action="http://localhost:8080/person/delete/${person.id}"> <input type="button" value="Delete"></form> 这将使用DAO发送请求。我在《邮递员》

我试图在Freemarker模板中使用按钮调用delete方法。我认为这就像在我的资源类中为该方法定义一条路径一样简单,然后将表单的操作指向该路径;但是,当我按下按钮时,什么也没有发生

以下是按钮的代码:

<form action="http://localhost:8080/person/delete/${person.id}">
<input type="button" value="Delete"></form>
这将使用DAO发送请求。我在《邮递员》杂志上测试过这个,效果很好。我想我可以把按钮指向同一条路径来使用它,但那不起作用。因此,我尝试修改ftl模板的构造函数使用的方法:

@DELETE
@Path("/delete/{id}")
public PersonView deletePerson(@PathParam("id") int id) {
    return new PersonView(manager.deletePerson(id));
}
但这会遇到一个问题,即我不能将返回人员列表的PersonView应用于deletePerson,这是一个无效的方法。有人知道我该怎么做吗?看起来应该很简单,但我想不出来

编辑:

除了user7294900关于submit按钮的回答外,我还需要对delete方法进行更改。在研究这个问题时,我还发现html表单不能与DELETE或PUT方法一起工作;只发布和获取。考虑到这一点,我将resource方法更改为使用@POST annotation:

@POST
@Path("/delete/{id}")
public void deletePerson(@PathParam("id") int id) {
    manager.deletePerson(id);
}
我还对表单按钮进行了必要的提交更改:

<form method="post" action="http://localhost:8080/person/delete/${profile.id}">
<input type="submit" value="Delete"></form>

您的问题似乎是HTML类型,应该是
submit
类型才能提交表单

“提交”类型的元素呈现为按钮。当单击事件发生时(通常是因为用户单击了按钮),用户代理将尝试向服务器提交表单

因此,将按钮更改为:

 <input type="submit" value="Delete"></form></td>

我对这个问题做了一些编辑,以反映您的解决方案,以及我自己遇到的一些关于表单和方法的研究。
 <input type="submit" value="Delete"></form></td>