1

これまで、私はjQuery AJAX (または XMLHttp) を使用しPUTてHTTP メソッドを処理し、Springを含めてきました (現在、Spring 3.2.0 を使用しています)。これらのメソッドの使用に関して、1 つの一般的な質問があります。DELETEHiddenHttpMethodFilterGETPOST

基本的に、単一のフォームを使用して同じページ (JSP) でINSERTEDITUPDATEおよびのような基本的なデータベース操作を実行したいと考えています。このシナリオでは、適切なアクションでこれらのメソッドをトリガーすることは可能ですか?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>

実行時に動的に行う可能性はどのくらいありますか?

4

1 に答える 1

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>

次に、処理ページで、どのボタンがフォームを送信したかを確認します。

于 2013-01-30T00:32:33.047 に答える