后台有个Map<Integer,String> key:0,1,2,3 value:A,B,C,D前台
<s:iterator value="cversionLst" var="cver" status="pos_c">
<s:select list="complyRelationMap" listKey="key" listValue="value" name="cver.value" accessKey = cver.value></s:select>
</s:iterator>不管用accessKey还是key属性。。都无法让select读取后台值自动选中何解

解决方案 »

  1.   


    我设置了。。没有用啊value="%{cver.value}"  
    cver.value的值是int类型。。我在select上面输出的话。没有问题。。有值
      

  2.   


    我在select上面输出的话。没有问题。。有值
      

  3.   


    <s:select list="adSourceList" id="adSource"
    name="ad.adSource" listKey="id" listValue="name"
    emptyOption="false" headerKey="" headerValue="--请选择--">
    </s:select>属性有没有get set方法?
      

  4.   


    有的我单独输出cver.value可以看到值。  我怀疑是不是用了iterator有影响。。
    <s:select name="protocolObj.baseInfo.serviceName" list="serviceNameLst" cssStyle="width:120px;" accesskey="protocolObj.baseInfo.serviceName"/>
    这是我在iterator外面设置的。。很正常。也能读取后台值自动选中
      

  5.   

    这样,你把s:select 直接拿出来,然后给它赋个cver.value的内容,看它还有变化?
      

  6.   

    另外。。我使用iterator标签迭代一个对象,比如
    <s:iterator value = "xxxx.list" var='obj'>
      <s:textfield value='obj.param' name='obj.name'>这样用的临时对象给name命名,然后我用form把他提交。。会自动填充到xxxx.list里面去吗?
      

  7.   


    我试验了一下。。当我直接给value='2'时。。可以自动选中,估计是cver.value的类型不对。。是int类型。。我转换成string再试试。