我有一个非常简单的动作类,其中包含一个成员变量“data”。当我提交普通网址时,它会在tomcat控制台中显示值:Test action data=hello
public class ActionTest extends ActionSupport {
private static final long serialVersionUID = -2606731098320589210L;
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
@Action(value = "mytestaction")
public String execute() {
System.out.println("Test action data="+data);
return SUCCESS;
}
}
如果我使用调试模式,例如使用 mytestaction.action修改网址?data = hello& debug = browser
在tomcat控制台中,它显示Test action data=null
。但它在参数中显示了浏览器ognl上下文树中的值。但是,当扩展Action类时,相同的data
为null。
在其他调试模式中,如 debug = xml ,它将显示为
<actionErrors />
<actionMessages />
<class>class com.ycs.fe.actions.ActionTest</class>
<data>hello</data>
<errorMessages />
<errors />
<fieldErrors />
并在 debug = console 模式下,如果我打印OGNL #action.data =>shows hello
还#parameters.data[0] => shows hello
。
这是一个真正的错误吗?还是我错过了什么?我尝试使用约定以及struts.xml中的映射,但两者都有相同的结果。