RESTful表单提交与JMS消息传递技术解析
1. RESTful表单提交
在创建新的资源时,使用 <sf:form>
定义表单并发送POST请求是合适的,因为POST常用于创建新资源。但如果要更新或删除资源,PUT或DELETE请求似乎更合适。然而,HTML的 <form>
标签只能发送GET或POST请求。虽然一些较新的浏览器可以处理 method
属性设置为PUT或DELETE的 <form>
标签,但为了兼容旧浏览器,需要将这些请求伪装成POST请求发送到服务器。
1.1 伪装PUT或DELETE请求为POST请求
在HTML表单中,将PUT或DELETE请求伪装成POST请求的关键是创建一个 method
为POST的表单,并添加一个隐藏字段。例如,以下HTML代码展示了如何创建一个提交DELETE请求的表单:
<form method="post">
<input type="hidden" name="_method" value="delete"/>
...
</form>
只需要添加一个表单和服务器都认可的隐藏字段,并将其值设置为所需的HTTP方法名。当提交此表单时,会向服务器发送一个POST请求,服务器会将 _method
字段解释为实际要处理的方法类型。