に参照名を言及する必要性とは何かを持っていますあなたのために物事をより簡単にするためのアクションに直接参加してください。以下の実施例検討:第2の例では
public class CreateNewWidgetAction extends ActionSupport {
private String property1;
private String property2;
private Long property3;
...
public String execute() throws Exception {
Widget widget = new Widget();
// set properties on widget
}
// getters and setters for properties here
}
public class CreateNewWidgetAction extends ActionSupport {
private Widget widget;
public String execute() throws Exception {
// sub properties for widget were already set, less work to do here
}
// getter and setter for widget here (or the
// getModel method if you are using the Model Driven approach)
}
を、我々は(ウィジェットプロパティ1、property2、及びproperty3を有していると仮定して)ウィジェットに直接プロパティを設定します。
多くのプロパティを扱っている例では、これがコードを単純化する方法が分かります。
更新日: をあなたはModelDriven
を実装することを選択した場合、あなたの行動は、単一のモデルによって駆動されているので、あなたは、さらになど、property1
、property2
、property3
としてフォームで上記の特性を参照します、すべてのフォームパラメータモデルの子どもとみなされる。
あなたは、あなたがwidget.property1
としてフォーム、widget.property2
、widget.property3
、上記の特性を参照しますModelDriven
を実装しないことを選択した場合など、このアプローチの利点は、あなたが対応していない行動上の他の性質を持つことができるということですウィジェットのプロパティに追加します。
それ以外は違いはありません。実際、この本は次のようにも言います:
オブジェクトバックアップされたJavaBeansプロパティと同様に、ModelDrivenアクションは複雑なJavaオブジェクトを使用してデータを受け取ることもできます。これらの2つの方法の違いはわずかであり、一方を選択するには機能的な結果はありません。
- Struts 2の動作、第3章Struts 2操作の操作>オブジェクトへのデータの転送 - Pg。駆動62
私は利益を理解しました。オブジェクト指向のBean(どちらもオブジェクト内のデータを保持するために使用されている)よりも、モデル駆動型の動作が優れている方法です。 – SonOfTheEARTh
彼らは良くありません。ちょうど代替。私はそれを反映するために私の答えを更新しました。 –