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