我的操作由 Struts 执行 <s:action>
我的 JSP 页面中的标记。
<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;
}
从输出的信息来看, Action 执行了,但是<h1></h1>
是空的。我也尝试过
<h1><s:property value="#request.testname"/></h1>
但是我无法得到我想要的结果,仍然是空的。
如何让这些属性在 <s:action />
中执行?
最佳答案
将property
标记放在action
标记后面。在评估 action
标记的正文之前,上下文变量可能不可用。
<s:action name="test" ignoreContextParams="false" executeResult="false" namespace="/"/>
<h1><s:property value="#attr.testname" /></h1>
关于java - Struts 2中如何获取action标签的请求属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715924/