1

Struts Action クラスの execute メソッドには、次の 4 つのパラメーターがあります。 HttpServletRequest, HttpServletResponse, ActionForm, ActionMapping

これは、HTTP 以外のプロトコルは STRUTS でサポートされていないということですか? 私は疑問に思う!

また、Struts v2.x では、これらのパラメーターが execute メソッドに埋め込まれていません。Struts はバージョン 2.0 からすべてのプロトコルをサポートするということですか?

4

2 に答える 2

2

一言で言えば、Struts は、標準の HTTP ベースの Web アプリケーションが開発されていた方法で、より優れたワーパーを提供するために開発されました。

フレームワークの背後にあるアイデアは、それが機能している基礎となる HTTP プロトコルの複雑さを取り除くことによって、開発をより簡単かつ柔軟にすることでした。

システムのコアでは、Strut でさえ HTTP Request と Repose を使用して、その機能やその他の作業を実行します。

更新: フレームワークはサーブレット仕様に準拠しているため、サポート対象となりますServletRequest request, ServletResponse response

Struts2 の署名について質問されたので、ここにその答えを示します。Struts2 は、サーブレット仕様をサポートしていないことを意味しないテストを簡単にするために、Action POJO ベースにするクリーンな方法を提供します。

Struts2 はメソッド シグネチャをきれいにexecuteして、Acton クラスの基礎となるサーブレットの依存関係を削除しましたが、内部では一連のインターセプターを使用して、アクション クラスから HTTP の複雑さを取り除き、単体テスト ケースを簡単に記述できるようにしています。 .

S2 のコアである Xwork を使用すると、スタンドアロン アプリケーションを作成できますが、その事実はあまり公表されていません。

于 2012-07-26T06:35:49.307 に答える
1

Struts は、HTTP ベースの Web アプリケーションをより適切にサポートするためのラッパーです。バックでは、サーブレットに基づくメカニズムを使用します。

Servlet API.jar依存関係もあります。

すべての Struts Action クラスは拡張Actionされ、デフォルトでexecuteメソッドをオーバーライドします

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)

http://struts.apache.org/1.x/apidocs/org/apache/struts/action/Action.html#execute%28org.apache.struts.action.ActionMapping,%20org.apache.struts.action を確認 してください。 ActionForm,%20javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29

Non-Http リクエスト用のメソッドもあります。

于 2012-07-26T06:37:42.720 に答える