2

spring.xml のアクション タグに autowiring インターセプター (interceptor-ref name="autowiring") を配置すると、index.jsp の struts タグがそのアクション クラスのセッターにマップできません。アクションタグからその自動配線タグを削除すると、その場合、jspのstrutsタグはアクションクラスのセッターにマップできます。

あなたの側からの助けは大歓迎です。何らかの例が必要な場合は、お知らせください。

<s:textfield name="name" label="Name" />
<s:textfield name="salary" label="Salary" />
<s:submit value="Add Record" />

この 'name' と 'salary' という名前の struts タグは、setter/getter の同じ名前で表されるアクション クラスに値を設定しません。

public void setName(String name) {
    this.name = name;
}

public void setSalary(String salary) {
    this.salary = salary;
}
4

1 に答える 1

2

アクションでインターセプターを定義する場合は、アクションですべてのインターセプターを定義する必要があります。パラメータが設定されていない場合、「オートワイヤリング」インターセプタ参照に「パラメータ」スタックが含まれていない場合、インターセプタはフォーム プロパティをアクションに転送します。

Umesh は正しいです。Spring を使用している場合、プラグインがインジェクションを処理します。アクションで「自動配線」プラグインを手動で定義する必要はありません。そのインターセプター定義を削除するだけで、パラメーターは通常どおりに設定され、アクションは引き続き接続されます。

つまり、アクション内で手動でセッション ファクトリを使用することは、ベスト プラクティスとは見なされません。すべてのセッション ファクトリ ロジックは、DAO/サービス/etc 内にラップする必要があります。アクションは、永続化レイヤーをほとんど (読み取り: 決して) 認識しないようにする必要があります。

于 2012-07-18T12:58:53.120 に答える