1 つのメンバー変数「データ」を持つ非常に単純なアクション クラスがあります。通常の URL を送信すると、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;
}
}
tomcat コンソールでmytestaction.action?data=hello&debug=browserを使用して URL を変更するようなデバッグ モードを使用すると、 Test action data=null
. ただし、パラメーターのブラウザー ognl コンテキスト ツリーに値が表示されます。ただし、data
Action クラスが展開されている場合は同じです。
debug=xmlのような他のデバッグ モードでは、次のようになります。
<actionErrors />
<actionMessages />
<class>class com.ycs.fe.actions.ActionTest</class>
<data>hello</data>
<errorMessages />
<errors />
<fieldErrors />
そして、デバッグ=コンソールモードで、OGNL#action.data =>shows hello
も印刷し#parameters.data[0] => shows hello
ます。
これは本物のバグですか?または私は何かが欠けていますか?struts.xml で規約とマッピングを試しましたが、どちらも同じ結果になりました。