我的本意是在
queryCondition.status = 0时进入a, 
queryCondition.status=1时进入b,
queryCondition.status=""时进入c.但在实际中我在java中给queryCondition.status=0,1时都能正确进入对应的地方,但是在后台给queryCondition.status设为空字符串时却进入了a.  我已经用<s:property value="queryCondition.status" />显示的确是空字符串。求解<s:if test='queryCondition.status == 0'>
a
</s:if>
<s:elseif test='queryCondition.status == 1'>
b
</s:elseif>
<s:else>
c
</s:else>

解决方案 »

  1.   

    queryCondition.status 是什么类型
      

  2.   

    在后台代码:this.queryCondition.put("status", 0);有时候会是this.queryCondition.put("status", "");所以有时候是整型,有时候是字符串
      

  3.   

    如果this.queryCondition.put("status", 3); 数值型,是不是就走最后的else了吧?
      

  4.   

    对啊~~~就是感觉s:if认为 ("" == 0)  = true 
      

  5.   

    楼主 你的stauts应该是int类型吧。所以给你自动转成0?
    要不你把status改成字符串类型 
    判断的时候这样
    <s:if test="queryCondition.status == '0'">
    a
    </s:if>
    <s:if test="queryCondition.status == ''">
    c
    </s:if>
      

  6.   

    我的queryCondtion是一个HashMap<String, Object>,难道queryCondtion.put("status","")后,在页面上,status把它搞成了int?
      

  7.   

    如果先put字符,再put整型,是不是就只识别字符类型了那?
      

  8.   

    一次action,我只put一次,要么整型,要么字符串。哎,折腾死我了。看来还是土一点,换成数字算了