Я работаю над своим первым веб-приложением java struts2 и хочу иметь возможность вставлять параметры bean-компонента в любой произвольно вызываемый класс. Но я нахожу, что я могу сделать это только с помощью классов действий Struts ...
Допустим, у меня есть этот bean-компонент в моем файле applicationContext.xml:
<bean id="BeanTest" class="BeanTest">
<property name="test" value="someval" />
</bean>
Если у меня есть настройка класса действий Struts, называемая BeanTest (например), и я добавляю установщик (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;
}
}
Если я создаю экземпляр BeanTest2 в BeanTest и вызываю getTest, он всегда возвращает ноль.
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";
}
}
Я хочу настроить bean-компонент в applicationContext, чтобы я мог указать ему произвольный класс, и этот класс всегда будет получать любые параметры бина, которые я установил (при условии, что я создал для них установщики). К сожалению, происходит то, что только классы действий Struts могут получить эти свойства компонента. Все не устанавливается.
Этот вопрос понятен? Я чувствую, что упускаю что-то очевидное из того, как работают бобы.