2

2 つの Struts2 アクションがあります。アクションのパブリック メソッドを別のアクションで使用したい。演算子を介してアクションをnew呼び出し、そのパブリック メソッドを呼び出すことはできますか? (いくつかの一般的な機能を再利用するため)

public class OneAction extends ActionSupport{
public void doSomeThing(){
    // some code
}

public String execute(){
    // some code
}
}

 public class AnotherAction extends ActionSupport{

public String execute(){
    /* is it ok?*/
    new OneAction().doSomeThing();
}
}
4

2 に答える 2

4

(震え)私はしません。共通の機能を、両方が呼び出すことができる別のクラスにリファクタリングします。ただし、そのクラスはアクションではなくPOJOになります。

アクションへの機能の埋め込みには注意が必要です。彼らはしっかりとウェブ層の陣営にいると思います。パラメータを検証してオブジェクトにバインドし、処理のためにPOJOに渡し、結果をパッケージ化して返すだけです。

于 2012-04-25T16:15:24.500 に答える
2

私は@duffymoの答えをプラスしましたが、ここでもう少し考えてみます.

機能がアクション間で共通の場合、基本アクション (Web 関連の場合) またはユーティリティ クラス (Web 関連または非関連) のいずれかに属します。どちらが最も理にかなっているかは、コンテキストに大きく依存します。

これらの文脈上の線に沿って、あなたが話している実際の機能に応じて、インターセプター、アスペクト、ミックスイン(実装言語によって異なります)など、他の場所でより理にかなっている可能性があります。詳細を知っているため、より具体的にすることは困難です。

于 2012-04-25T18:50:54.677 に答える