在 Action 中,如果有成员变量,且成员变量与 值栈中属性的名字相同,那么执行 setParameter() 后的结果将会怎样呢??
public class MyAction extends ActionSupport {
private Sring name;
// 省略 setter and getter 方法
public String sameName(){
String name = "你好";
setName("i am name");
ActionContext.getContext()
.getValueStack().push(name);
// 修改 值栈中的 name 属性后 那么会怎样呢?
ActionContext.getContext()
.setParameter("name","张三");
// 显示结果 "张三"
System.out.println(ActionContext
.getContext().getValueStack().pop());
// 显示 MyAction 本身的 name 属性 "i am name"
System.out.println( getName() );
return SUCCESS;
}
显然 setParameter() 中改变的是指栈中的 name 而不是 Action 中的 name 属性。