1

インターフェイス付きのアクションを使用していModelDrivenます。アクションにはscopedModelDrivenインターセプターがあり、モデルをセッションに保存します。

モデルは以下のとおりです。

public class Fundtransfer{

private String amount;
private String sourceAccount;
private String destinationAccount;
private String sign

//setter's and getter's ommited
}

FundtransferBean がモデルとして使用されます。JSP フォームには、金額と、sourceAcountインターセプターを介して自動的に BeandestinationAcountにマップされるフィールドがあります。聞くまではすべてが正常です!FundtransfermodelDriven

もちろん、ユーザーは HTML フォームを簡単に変更して、名前付きの変数 signをアクションに渡すことができ、インターセプターはそれを Bean に更新します。

ModelDrivenインターセプターを介して符号値を更新できなかったモデルを構成できる可能性はありますか?

新しい Bean を作成し、それをFundtransferBean にコピーするか、ある種の継承を使用できることはわかっています。より良い方法はありますか。

私たちが使用している実際の Bean は巨大で、ネストされた Bean もあります。

いくつかのアスペクトトリックを使用できるのではないかと思いましたが、それが可能かどうかわかりませんか?

4

1 に答える 1

1

通常、getter/setter を介して読み取り/書き込みに使用されるModelDrivenBean。ここでアクセスを制御できます。ただし、まだわからない場合は、Struts2 は OGNL を使用してモデルに入力するparamsインターセプターを介してパラメーターを設定します。excludeParamsたとえば、パラメーターを介してこのインターセプターを制御できます

<interceptor-ref name="params">
  <param name="excludeParams">
    dojo\..*,^struts\..*,sign
  </param>
</interceptor-ref>

別のアプローチはParameterNameAware、パラメーターのブラック/ホワイト リストを実装できる場所を使用することです。このアプローチは、最初の方法によって制限されたパラメーターへの扉を開く可能性があることに注意してください。

于 2013-11-08T17:55:27.250 に答える