s标签获取action的值为空
代码如下,从action里传了值过去,但在t.jsp中还是显示了666666,就是说 #l==null 判断为true,用c标签的话连list里的1、2、3都能迭代出??
但是我把HttpServletRequest req = ServletActionContext.getRequest();
改成ActionContext req = ActionContext.getContext();就一切正常了,t.jsp没有输出66666
Java code
public class TestAction {
public String test(){
List<Integer> l=new ArrayList<Integer>();
l.add(1);
l.add(2);
l.add(3);
HttpServletRequest req = ServletActionContext.getRequest();
req.setAttribute("l", l);
return "success";
}
}
struts.xml
HTML code
<struts>
<package name="st9" extends="struts-default">
<action name="test" class="TestAction">
<result name="success">t.jsp</result>
</action>
</package>
</struts>
t.jsp
HTML code
<s:if test="#l==null">666666</s:if>
------解决方案--------------------楼主自问自答了~~~~~
------解决方案--------------------使用 HttpServletRequest req = ServletActionContext.getRequest();
在页面取要这样<s:if test="#request.l==null">666666</s:if>
建议多看看<s:debug></s:debug>
------解决方案--------------------action没有继承ActionSupport