很奇怪,遇到一个struts2的奇怪问题:
<s:iterator value="orgs" var="org">
<s:property value="#org.id"/>
</s:iterator>
才能输出数据,而之前本来是
<s:iterator value="orgs" var="org">
     ${org.id}
</s:iterator>
也是可以的,可是过了段时间再重新试这段代码时,就不行了,这是为什么?

解决方案 »

  1.   

    el表达式理论上是无法访问到OGNL Context中的值的.!
    所以LZ我觉得你不必纠结在这个问题上面!
    <s:iterator value="orgs" var="org">
    <s:property value="#org.id"/> 
    </s:iterator>
    这种是最正宗的做法.! 何必不用正宗的而去搞些稀奇古怪的呢?
      

  2.   

    在iterator中可以访问那是因为每次被迭代的对象被压在栈顶,而el可以访问到栈中的对象.! 仅此而已
      

  3.   

    是呀,我也很纳闷,可是就是在自己的机子上时,
    <s:iterator value="orgs" var="org">
      ${org.id}
    </s:iterator>这段代码还好好的能够输出数据,但是现在放到别的机子上,居然就输出不了这些了,很是奇怪
      

  4.   

    在你的jsp中加上 <%@ page isELIgnored="false"%>看看
      

  5.   

    在web.xml中加上
    <jsp-config> 
    <jsp-property-group> 
    <el-ignored>false</el-ignored> 
    </jsp-property-group> 
    </jsp-config> 
      

  6.   

    <s:iterator value="orgs" var="org">
    <s:property value="#org.id"/>  
    </s:iterator>
    标准写法,不必计较那些,没意思