有这样一个问题.
从a.jsp页面 点击这个链接.传值 lotid 到 b.jsp页面<a href = '<s:url value="b.jsp?&lotid =15"/>'>半全场</a>
<a href = '<s:url value="b.jsp?&lotid =3"/>'>双色球</a>
<a href = '<s:url value="b.jsp?&lotid =7"/>'>3D</a>
......................
......................在b.jsp页面中用params保存传递的参数
<s:set name="params" value="#parameters.lotid [0]"/>在b.jsp页面中用这个种方式将传递过来的值用set的value将他们对应起来    <s:set name="yy"  value="#{
     '    '3':'双色球',
 '7':'3D',
 '11':'七乐彩',
 '1':'胜负',
                   '10000':'任九',
 '15':'半全场',
 '17':'4场进球',
 '9':'足球单场',
 '28':'超级大乐透',
 '5':'排列三',
 '4':'七星彩',
 '8':'22选5'
}"/>
 <s:property value="#yy[#parameters.lotid[0]]"/>ff77
<! -- 在上面的 ff77之前显示不了内容.???? 传递一个3应该显示双色球,传递一个7应该显示3D..... -->
但是如果改为了  <s:property value="#yy['3']"/>ff77 则可以显示为  "双色球ff77"
问:
 以下代码为何不显示出来结果. 该如何修改才能让他根据传递的参数.然后传递到yy里面,最后显示与之对应的内容呢?
 <s:property value="#yy[#parameters.lotid[0]]"/>ff77

解决方案 »

  1.   

    <s:set name="params" value="#parameters.lotid [0]"/>你这里的 #parameters.lotid[0] 能正确取到值吗?你可以print一下看他的值是多少<s:property value="#yy['3']"/> 此处的3应该是作为了一个字符来处理的吧,需注意
      

  2.   

    LS说的对,LZ可以用<s:property value="#yy['xx']"/>这种方式来取值
      

  3.   


    回1 楼 #parameters.lotid[0]能取到值.
    它的值是从a.jsp页面的链接传递过来的.
    你说的这个地方<s:property value="#yy['3']"/> 是可以读出值来的,因为这个'3'对应了 Set(yy) 里面的双色球. 所以它在页面输出的值会是 双色球.
    你把 '3'改为别的值,相应的也就读出了不同的内容.因为在 yy 这个里面我给不同的参数,对应了不同的值
    我的意思是这段代码 <s:property value="#yy[#parameters.lotid[0]]"/>为何输出不了值。
    #paramters.lotid[0]就好比刚才的'3' 值都是一样的,为什么就不能输出结果。
    一种是以 #paramters.lotid[0]直接从a.jsp页面传递来的参数: 结果 不能显示
    另外一种是 直接写个'3' 但是他能读出结果。令我想不透的是
    #pramaters.lotid[0] 和'3'明明是相同的啊。只是形式不同而已
      

  4.   

    试试看:<s:iterator value="yy" id="map">${params eq map.key ? map.value : ''}</s:iterator>呵呵,有点长
      

  5.   

    深入调试了一下。发现问题出在你的map定义上,如果你的key设为 1 a b 这样的单字符,程序实际上是以Character类型保存key值。那么取的时候传入的是String,很明显就获取不到值了。第二种解决方案:<s:set name="yy"  value="#{
             'a3':'双色球',
             'a7':'3D',
             'a11':'七乐彩',
             'a1':'胜负',
             'a10000':'任九',
             'a15':'半全场',
             'a17':'4场进球',
             'a9':'足球单场',
             'a28':'超级大乐透',
             'a5':'排列三',
             'a4':'七星彩',
             'a8':'22选5'
            }"/>即把key都设置为超过1个字符。