1

Strutsには、DELETEHTTPメソッドのデフォルトハンドラーdoDeleteがあるようです。私が実装したサーブレットは、DELETEメソッドを使用していません。ただし、curlを使用してメソッドクエリを実行すると、DELETEメソッドが表示されます。

doDeleteを実装するデフォルトサーブレットのデフォルトの動作を知りたいのですが。ありがとう。

4

2 に答える 2

1

Struts 2は、コアのRESTfulマッパーで利用可能な2つを介してRESTをサポートしますが、最初にそれらを有効にする必要があります。または、Struts2RESTプラグインを使用します。

どちらの場合も、最初にStruts2を構成してRESTサポートを有効にする必要があります。

于 2013-01-29T07:56:05.833 に答える
1

Struts2 とそのアクションの使用法についてあまり知りません。ただし、独自のサーブレットを定義している場合は、ActionServlets を使用した Struts1 と同じ動作になります。ActionServlet は HttpServlet のサブクラスであり、メソッドをオーバーライドしませんdoDelete。のメソッドのオープン ソース コードは次のとおりです。doDeleteHttpServlet

protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException
{
    String protocol = req.getProtocol();
    String msg = lStrings.getString("http.method_delete_not_supported");
    if (protocol.endsWith("1.1")) {
        resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
    } else {
        resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
    }
}

サーブレットでのメソッドのデフォルトの実装はdoDeleteエラーを返します (これは、REST ConsoleDELETEなどのツールを使用してサンプル サーブレットにリクエストを送信することで確認できます)。

于 2013-01-29T04:46:58.093 に答える