Struts2中Action转发到jsp页面后,Action的属性值用EL表达式取总是为空,循环遍历用<c:foreach>标签不执行循环,用 <s:iterator>正常了,怎么回事啊,总之一用el表达式,取值就为空

解决方案 »

  1.   

    <s:iterator>会自动分范围查找对应变量,c:foreach不会
      

  2.   

    第二行加入   <%@ page isELIgnored="false" %>   试试
      

  3.   

    <c:foreach>要导入jstl.jar和几个tld,而且页面还要用taglib引入。。如果不行,那就干脆用struts2标签就够了啊。。
      

  4.   

    可能是导包出现问题了吧,正常来说,<c:foreach>和<s:iterator>是可以相互替换的。
      

  5.   

    Struts2是有个值栈的,所有的东西,session、request。。等等都是被压到值栈中,从值栈中取东西好像要加“#”,并且有时候值栈中的某些东西根本就不是那个键了。有个方法可以显示在页面上显示值栈。
    但是我忘了
      

  6.   

    EL表达式没有禁用,在jsp用<%  %>声明的变量用EL又取得出来
      

  7.   

    你的拦截器interceptor这个的顺序可能错误了
    看看你自己写过默认的拦截器没有
    要吧defaultStack这个拦截器放在最前面,让他最先执行
    而且如果你用了默认的拦截器,你又在某个action里面定义你自定义的其他拦截器,那你默认的拦截器便会失效!等于是struts2的核心你都没有了!如果你定义了默认的有想在某个action里用到你自定义的拦截器,又不想struts的其他拦截器失效,那就在要用的那个action里把默认的拦截器放在上面建议你把自定义的拦截器先不要试试,或者全部的拦截器都不要试试,看看能不能获到值,如果可以说明是拦截器除了问题!
      

  8.   

    用s标签都可以用,但是一旦与EL沾边,就取值为空,奇怪得很,找了很久,代码似乎没错啊!
      

  9.   

    看看你的具体代码注:如果是struts2.1以后的版本,就不支持EL表达式了啊。建议不用。
      

  10.   

    应该是标签的标签库没有导入吧<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      

  11.   

    直接用struts2标签不是挺好吗。
      

  12.   

    导包<%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core" %>就ok了
      

  13.   

    用<s:property>避过了,可能是导Struts2的jar包出问题了,又做了一份,代码没变EL正常的