webwork中,在1个ACTION内,定义了2个方法,init()用于加载JSP页面时调用(如:test!init.action,初始化JSP的一些显示初始值(例如firstString)。
用户对于JSP进行选择或输入后,点击提交,执行ACTION的另一个方法execute(),(如:test!execute.action),但是,这时在execute这个方法执行时,init()设置的域值都丢失了(firstString),重新为NULL。这个问题如何解决呢?
[code]public class Test extends ActionSupport {
private String firstString;
private String secondString;
public String init() throws Exception{
firstString = "init in init()";
return SUCCESS;
}
public String execute() throws Exception{
secondString = firstString;
return SUCCESS;
}
public String getFirstString() {
return firstString;
}
public void setFirstString(String firstString) {
this.firstString = firstString;
}
public String getSecondString() {
return secondString;
}
public void setSecondString(String secondString) {
this.secondString = secondString;
}
}
[/code]
我的理解是,因为webwork是基于线程独立的,是不同的actionContext,因此,init()和execute()执行时,其实处于不同的线程实例,因此,init()里初始化的值,在execute()中,已不可见。不知道对不对?
那样的话,是不是我只能把init()的值(firstString)放到Session或者request中。除此之外,还有其他方法不?
谢谢!
用户对于JSP进行选择或输入后,点击提交,执行ACTION的另一个方法execute(),(如:test!execute.action),但是,这时在execute这个方法执行时,init()设置的域值都丢失了(firstString),重新为NULL。这个问题如何解决呢?
[code]public class Test extends ActionSupport {
private String firstString;
private String secondString;
public String init() throws Exception{
firstString = "init in init()";
return SUCCESS;
}
public String execute() throws Exception{
secondString = firstString;
return SUCCESS;
}
public String getFirstString() {
return firstString;
}
public void setFirstString(String firstString) {
this.firstString = firstString;
}
public String getSecondString() {
return secondString;
}
public void setSecondString(String secondString) {
this.secondString = secondString;
}
}
[/code]
我的理解是,因为webwork是基于线程独立的,是不同的actionContext,因此,init()和execute()执行时,其实处于不同的线程实例,因此,init()里初始化的值,在execute()中,已不可见。不知道对不对?
那样的话,是不是我只能把init()的值(firstString)放到Session或者request中。除此之外,还有其他方法不?
谢谢!