在我们使用Struts2标签时经常会遇到这种情况 就是使用到list这个属性时
那些时候使用list="#session.BList"
而那些时候使用value="%{#session.CHECKEDATABLE.a3}" 
我想问的是"#"和%{#}他们有什么区别?
还有就是Stack Context是什么意思?
ValueStack又是什么意思呢?
谢谢  等待着大家的帮助 

解决方案 »

  1.   

    1>.1/.Stack Context:就是ActionContext。
    2/.ValueStack是值堆,是ActionContext的一部分。2>.1/.#操作符作用:   1).访问非根对象。ValueStack是根对象,request,session,application是非根对象。
           例:<s:property value="#request.name" />
       2).构建Map和List:
           例:<s:select name="sex" list="#{'1':'男', '2':'女'}" />
       3).集合的过滤和投影:
           例:<s:iterator value="lst.{?#this.age > 20}"></s:iterator>
    2/.%操作符作用:
       1).判断标签用:
           例:<s:if test="%{age > 10}">
       2).取得国际化信息:
           例:<s:property value="%{getText('资源文件中key')}" />
      

  2.   

    http://zhxing.javaeye.com/blog/375823
    详细的
    实在不知道就 <s:debug/>看看它参数的目录