我的JSP页面中的Struts <s:action>
标记执行了我的操作。
<s:action name="test" ignoreContextParams="false" executeResult="false" namespace="/">
<h1><s:property value="#attr.testname" /></h1>
</s:action>
在test
操作中,我尝试将testname
属性设置为值,如下面的代码。
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
ServletActionContext.getRequest().setAttribute("testname",
"This is a test name");
System.out.println("test action executing");
return ActionSupport.SUCCESS;
}
从信息输出中执行的操作,但<h1></h1>
为空。我也试过
<h1><s:property value="#request.testname"/></h1>
但我无法得到我想要的结果,仍然是空的。
如何在<s:action />
中执行这些属性?
答案 0 :(得分:2)
将property
标记放在action
标记之后。在评估action
标记的主体之前,上下文变量可能不可用。
<s:action name="test" ignoreContextParams="false" executeResult="false" namespace="/"/>
<h1><s:property value="#attr.testname" /></h1>