当前位置: 代码迷 >> Java Web开发 >> s:iterator通过status索引访问List数组有关问题
  详细解决方案

s:iterator通过status索引访问List数组有关问题

热度:664   发布时间:2016-04-14 09:01:37.0
s:iterator通过status索引访问List数组问题
本帖最后由 modelsmall 于 2015-05-20 00:36:50 编辑
		   
<Form action="updateAllDataInfo" method="POST"> 
..........
..........
 <s:iterator value="indexList" status="s" >
            <tr>
                <td align="left">&nbsp;&nbsp;&nbsp;&nbsp;<s:property value="indexCode"/></td> 
  <td><s:property   value="indexName"/></td>          
                <td><s:property   value='%{dataList[#s.index].indexValue}'/></td> 
                <td><input type="text"  value='${dataList[1].indexValue}'/></td>   
                <td><input type="text"   value='%{dataList[#s.index].indexValue}'/></td> 
                
            </tr>    
  </s:iterator> 
 <s:submit value="保存" align="center" /> 

显示如下图

本s:iterator同时对两个长度相等List进行读取和循环。读第二个datalist的时我利用类似数组取值的方式如代码所示。
第三行我用s:property取值成功(如图第三列4个数),第四行我每次都读取下标为1的值,都能取值成功(第四列4个相等的数),唯独第五行我用类似第三行的方法,把s.index作为索引变量放到数组里,只不过用的是input的标签,读取失败,也试了几种其他的写法均失败。
请问如何对第五行修改才能读取数据库值成功?涉及到修改功能,只能用input的标签先读取数值了。
------解决思路----------------------
我看你的获取方式不一样,一个是%一个是$,两个获取方式对于string和int的处理是不一样的(和框架有关)
可能你的#s.index取出的值是一个Integer对象,需要转换成int类型,才能当作list的索引
你可以#s.index+1试试
------解决思路----------------------
用s:set定义一个数,随着循环自增
------解决思路----------------------
引用:
Quote: 引用:

我看你的获取方式不一样,一个是%一个是$,两个获取方式对于string和int的处理是不一样的(和框架有关)
可能你的#s.index取出的值是一个Integer对象,需要转换成int类型,才能当作list的索引
你可以#s.index+1试试


引用:
我看你的获取方式不一样,一个是%一个是$,两个获取方式对于string和int的处理是不一样的(和框架有关)
可能你的#s.index取出的值是一个Integer对象,需要转换成int类型,才能当作list的索引
你可以#s.index+1试试

如果写一样就报错了,我试了好几种组合都不行


那就定义一个变量,把#s.index赋给它,下面在用这个变量
  相关解决方案