到目前为止,我已经使用 jQuery AJAX(或 XMLHttp)处理了 HTTP 方法,PUT
包括Spring (目前我正在使用 Spring 3.2.0)。我有一个关于使用这些方法的一般性问题。DELETE
HiddenHttpMethodFilter
GET
POST
基本上,我想使用单个表单在同一页面 (JSP) 上执行基本的数据库操作,例如 、INSERT
和。在这种情况下,是否可以在适当的操作中触发这些方法?EDIT
UPDATE
UPDATE
例如,当用户按下删除按钮时,DELETE
应该引发该方法,当他按下更新按钮时,PUT
应该触发该方法,在按下插入按钮时,POST
应该调用该方法,在检索数据时,该GET
方法应该是使用,因此应该调用在控制器中映射的适当方法(再次在具有单个表单的同一页面上<form:form>...</form:form>
)。
当然,通过 AJAX 是可能的,但在任何地方都使用 AJAX 是不合适的。
也许我错过了 RESTFul API 的一些重要方面。显然,这是不可能的(在不知不觉中)。实际答案是什么?
编辑:
假设,我想处理该PUT
方法,那么 Spring 表单将如下所示。
<form:form id="mainForm" name="mainForm" method="put" action="Temp.htm" commandName="tempBean" enctype="multipart/form-data">
<input type="submit" id="btnSubmit" name="btnSubmit" value="Submit"/>
</form:form>
其生成的 HTML 如下所示。
<form id="mainForm" name="mainForm" action="Temp.htm" method="post" enctype="multipart/form-data">
<input type="hidden" name="_method" value="put"/>
<input type="submit" id="btnSubmit" name="btnSubmit" value="Submit"/>
</form>
隐藏<input type="hidden" name="_method" value="put"/>
字段被自动添加到处理PUT
方法HiddenHttpMethodFilter
如果我现在需要提出该DELETE
方法,则应分别修改表单及其生成的 HTML,如下所示。
<form:form id="mainForm" name="mainForm" method="delete" action="Temp.htm" commandName="tempBean" enctype="multipart/form-data">
<input type="submit" id="btnSubmit" name="btnSubmit" value="Submit"/>
</form:form>
生成的 HTML
<form id="mainForm" name="mainForm" action="Temp.htm" method="post" enctype="multipart/form-data">
<input type="hidden" name="_method" value="delete"/>
<input type="submit" id="btnSubmit" name="btnSubmit" value="Submit"/>
</form>
在运行时动态执行此操作的可能性有多大?