我是这么写的:
<s:if test="needComfirm == 'y'">能</s:if> 但就是死活都不对,请教了!

解决方案 »

  1.   

    看看你的needConfirm是否取到值了
      

  2.   

    <s:if test="#needComfirm == 'y'">能 </s:if>  试试
      

  3.   

    needComfirm可以取到值,我看教程上说对比String是这么写:<s:if test="needComfirm == 'y'">能 </s:if> 
    但是就是不行,另外<s:if test="#needComfirm == 'y'">能 </s:if>也不行
      

  4.   

    <s:if test="needComfirm == 'y'">能</s:if> 
    这样写没有错,
    你用${needComfirm } 看看是否有值.
      

  5.   

    needComfirm 是一个什么类型的变量,字符串还是一个对象.
      

  6.   

    needComfirm 在anction里是一个String${needComfirm }有值,就是一个“y”
      

  7.   

    问题已经解决了首先这样写是没错的:<s:if test="canSubscribe == 'Y'">能 </s:if> 
                        <s:else>不能 </s:else> 但是,问题在于在struts2中,如果你的==号右方就一个字母比如我的是'y',那么,Struts2会认为这是在对比一个char,会出现例外的,因为canSubscribe在anction中是String。解决方法是这样写:<s:if test="canSubscribe == 'Y'.toString()">能 </s:if> 
                                                                 <s:else>不能 </s:else> 
    当然,如果你对比的是多个字母那就没问题了,比如:<s:if test="canSubscribe == 'Yes'">能 </s:if> 
                                                    <s:else>不能 </s:else> 
    就不用写.toString()了。世界真美好!!
      

  8.   

    谢谢。我也遇到这个问题。研究了好久。。
    世界真美好。too