User类:
public class User{
     private Boolean done = true;
     public Boolean isDone(){
         return done;
     }
     public void setDone(Boolean done){
         this.done = done;
     }

JSP页面(部分):
<s:property value="%{user.done}"/>
页面无任何显示。当我把方法isDone()改成getDone()时,就可以显示"true",难道OGNL对标准JavaBean中的Boolean/boolean属性的isXXX()/hasXXX()无法解析?
The Struts 2 version is 2.1.6 and the OGNL version is 2.6.11.

解决方案 »

  1.   

    <s:property value="%{user.done}"/> value值好像不支持表达式吧
      

  2.   


    Sorry, 写错了,应该是
    <s:property value="user.done"/>
      

  3.   

    是发贴的时候写错了,原代码是<s:property value="user.done"/>,问题依然存在。换成getXXX()就好了,感觉就是OGNL无法解析JavaBean对于Boolean/boolean类型成员变量的方法名规范:isXXX()/hasXXX()。
      

  4.   

    是通过标准getter setter取值赋值的 好像不支持isXxx
      

  5.   

    这么说对于Boolean/boolean类型的成员变量必须用getXXX()才能使得OGNL识别该成员属性?希望下一版本的Struts2能够解决。