[Seasar-user:2582] Seasar2/S2JSF 質問 プロパティが2回セットされる
eihan
eihan
2005年 9月 16日 (金) 15:08:13 JST
eihanです。
Seasar2/S2JSFにて、質問があります。
以下のようなクラス/diconを作成し、同一クラスにて複数Actionを定義し、
property指定時/未指定でDtoを切り替えようと試みたのですが、
意図通りには行きませんでした。
http://www.seasar.org/DIContainer.html#AutoBindingModeの記述から
===========================
自動バインディング
プロパティが明示的に指定されている場合はそれに従います。
明示的に指定されていないプロパティで、型がインターフェースの場合は
自動的にバインドします。
===========================
プロパティを明示的に指定しているので、「hogeDto2」のインスタンスが
セットされるのかな?と解釈していたのですが、「hogeDto」「hogeDto2」
共にセットされているみたいです。
ログが2回呼ばれていましたが、変数は当然上書きされています
考え違い等ありましたらご指摘していただければと思います。
以上、ご教授お願いします。
public abstract class BaseAction {
public String execute() {
return process();
}
protected abstract String process();
}
public class HogeAction extends BaseAction {
private HogeDto _hogeDto = null;
protected String process() {
return "hoge";
}
public void setHogeDto(HogeDto hogeDto) {
_hogeDto = hogeDto;
}
}
public class HogeDto {
private int _value = 0;
public void setValue(int value);
public int getValue();
}
<component name="hogeAction" class="HogeAction" instance="request"/>
<component name="hogeAction2" class="HogeAction" instance="request">
<property name="hogeDto">hogeDto2</property>
</component>
<component name="hogeDto" class="HogeDto" instance="session">
<property name="value">1</property>
</component>
<component name="hogeDto2" class="HogeDto" instance="session">
<property name="value">2</property>
</component>
Seasar-user メーリングリストの案内