私は最初のjavastruts2Webアプリケーションに取り組んでおり、呼び出される任意のクラスにBeanパラメーターを挿入できるようにしたいと考えています。しかし、これはストラットアクションクラスでのみ実行できることがわかりました...
applicationContext.xmlファイルに次のBeanがあるとします。
<bean id="BeanTest" class="BeanTest">
<property name="test" value="someval" />
</bean>
BeanTest(そのように)と呼ばれるstrutsアクションクラスのセットアップがあり、セッター(public void setTest())を追加すると、テストパラメーターが設定され、それにアクセスできます。
import com.opensymphony.xwork2.ActionSupport;
public class BeanTest extends ActionSupport{
private String test;
public String execute(){
String str = getTest(); // returns "someval"
return "success";
}
public void setTest(String test){
this.test = test;
}
public String getTest(){
return test;
}
}
ただし、次のようにBeanをBeanTest2に変更したとします。
<bean id="BeanTest2" class="BeanTest2">
<property name="test" value="someval" />
</bean>
そして、私は次のようなスタンドアロンクラスを持っています:
public class BeanTest2{
private test;
public void setTest(String test){
this.test = test;
}
public String getTest(){
return test;
}
}
BeanTestでBeanTest2のインスタンスを作成し、getTestを呼び出すと、常にnullが返されます。
import com.opensymphony.xwork2.ActionSupport;
public class BeanTest extends ActionSupport{
public String execute(){
BeanTest2 bt = new BeanTest2();
String str = bt.getTest(); //returns null, but I want "someval"
return "success";
}
}
私がやりたいのは、applicationContextでBeanを設定して、任意のクラスを指すことができるようにすることです。そのクラスは、設定したBeanパラメーターを常に取得します(セッターを作成したと仮定します)。残念ながら、これらのBeanプロパティを取得できるのはstrutsアクションクラスのみです。すべてが設定されていません。
この質問は明確ですか?Beanの動作について明らかな何かが欠けているように感じます。