index..jsp
<s:a href="controltag/ifTag.jsp?score=70">if标签标签</s:a>
点击这个链接进入ifTag.jspifTag.jsp<s:set name="score" value="#parameters.score[0]"/>
您的成绩是:
<s:if test="#score < 60">
不及格
</s:if>
问题是,如果把=#parameters.score[0]写成=#parameters.score,就获取不到70分这个值(score=70),页面不显示“不及格”这三个字。
[0]说明是数组的第一个元素,但何来数组?又没有两个score
若是数组,是parameters.(score[0]),还是(parameters.score)[0]

解决方案 »

  1.   

    #parameters.score[0]
    因为你的value stack中score是一个对象,他的值就可能不是一个,所以加上[0]表示取他的第一个.
    你课一在jsp页面中加入,<s:debug></s:debug>标签,可以自己看看值栈中每个属性的值..
      

  2.   

    <a href="controltag/ifTag.jsp?score=70&score=50">是不是这样就会产生两个score对象?
    如果是#request.score,为什么就不用[0],我是在这里看见
    request application session attr都不用[0],为什么?
      

  3.   

    值栈中的元素的值不止一个,你可以理解为元素的值是一个数组,你从数组中取出第一个值,当然是score[0]