标签问题,ognl表达式的使用!!

坚持2012 2013-03-19 09:19:46
在jsp页面中:
我理想中的代码应该是这样的,
<%int i=0;%>
<s:property value="list[<%=i++%>].name"/>
上面代码的写法好像不可行,我想请问java代码是不是无法在ognl表达式中使用?
上面代码中的ognl表达式中list的下标可不可以传入一个变量,因为我想通过这个变量来控制对list集合中对象的提取,哪位高手能指点一下,谢谢了,很急!
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyazuo 2013-03-19
  • 打赏
  • 举报
回复
最终效果不就是1和11,2和12在同一行吗? 你用一个list就行,两个list就这样: <s:iterator status="status" begin="0" end="9"> <s:set value="#status.index" var="idx"/> <s:property value="#status.count" />:${list1[idx].name}--<s:property value="#status.count+10" />${list2[idx].name}<br/> </s:iterator> 迭代就纯粹计数,上面其实也是这样,value可以去掉。
坚持2012 2013-03-19
  • 打赏
  • 举报
回复
引用 6 楼 boyazuo 的回复:
<s:iterator value="list" status="status" begin="0" end="9"> <s:set value="#status.index" var="idx"/> <s:property value="#status.count" />:${list[idx].name}--<s:property value="#status.……
1和11,2和12...在同一行哦,这样迭代会是一行一行添加的,而我要的是从左边一行一行读取,然后再到右边的呢,这样好像不行吧
boyazuo 2013-03-19
  • 打赏
  • 举报
回复
<s:iterator value="list" status="status" begin="0" end="9"> <s:set value="#status.index" var="idx"/> <s:property value="#status.count" />:${list[idx].name}--<s:property value="#status.count+10" />${list[idx+10].name}<br/> </s:iterator> 10就是你的list.size()/2; table标签你自己加,应该可以实现你要的效果。
少主无翼 2013-03-19
  • 打赏
  • 举报
回复
你就不会先判断你有多少数据啊 不够的话在前台用一个循环写空值不就好了 你先判断两个list1是不是满的 如果list1不满 那list2压根没值是吧 这样的话你就可以根据list1中的记录数写一个空行凑够20行 要是list1是满的 那list2也就有值 那就在迭代list1的时候判断status是否大于list2的总记录数 大于了就写空行
坚持2012 2013-03-19
  • 打赏
  • 举报
回复
引用 3 楼 hqshaozhu 的回复:
你是在后台就将两个list分开了吗 这样的话你在迭代一个的时候顺便迭代第二个应该就可以了吧 <s:iterator/>不是有个status值吗 这个值是用来标识集合迭代的下标的 利用这个看看能不能使用<s:property value="list2[status].name"/>这种形式获得第二个集合的值 我没验证你可以试试看
后台的两个list是分开的,其实我的页面大概是这样的: <%int i=0; %> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl8118790 style='height:13.5pt' x:num>1</td> <td class=xl8218790 style='border-top:none'><s:if test="zdwlscount>=1"><s:property value="faHuo.zhiDanWuLiaos[0].wuLiaoXinXi.mingCheng"/></s:if><s:else><s:property value="fxgwls[<%=i++ %>].mingCheng"/></s:else></td> <td class=xl8318790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl8618790 x:num>11</td> <td class=xl8718790> </td> <td class=xl8818790 style='border-left:none'> </td> <td class=xl8718790 style='border-left:none'> </td> <td class=xl7418790 style='border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl6718790 style='height:13.5pt' x:num>2</td> <td class=xl8718790 style='border-top:none;border-left:none'><s:if test="zdwlscount>=2"><s:property value="faHuo.zhiDanWuLiaos[1].wuLiaoXinXi.mingCheng"/></s:if><s:else><s:property value="fxgwls[i++].mingCheng"/></s:else></td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl9018790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none;border-left:none'> </td> <td class=xl8618790 style='border-top:none' x:num>12</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl6718790 style='height:13.5pt;border-top:none' x:num>3</td> <td class=xl8718790 style='border-top:none;border-left:none'><s:if test="zdwlscount>=3"><s:property value="faHuo.zhiDanWuLiaos[2].wuLiaoXinXi.mingCheng"/></s:if><s:else><s:property value="fxgwls[i++].mingCheng"/></s:else></td> <td class=xl9118790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl8618790 style='border-top:none' x:num>13</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl9218790 style='height:13.5pt' x:num>4</td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl8618790 style='border-top:none' x:num>14</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl6718790 style='height:13.5pt' x:num>5</td> <td class=xl8218790 style='border-top:none;border-left:none'> </td> <td class=xl8318790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl8618790 style='border-top:none' x:num>15</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl6718790 style='height:13.5pt;border-top:none' x:num>6</td> <td class=xl8218790 style='border-top:none;border-left:none'> </td> <td class=xl8318790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none;border-left:none'> </td> <td class=xl8618790 style='border-top:none' x:num>16</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl9318790 style='height:13.5pt;border-top:none' x:num>7</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl9018790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none;border-left:none'> </td> <td class=xl8618790 style='border-top:none' x:num>17</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl9318790 style='height:13.5pt;border-top:none' x:num>8</td> <td class=xl8218790 style='border-top:none'> </td> <td class=xl8318790 style='border-top:none;border-left:none'> </td> <td class=xl8418790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl8618790 style='border-top:none' x:num>18</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8918790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl9318790 style='height:13.5pt;border-top:none' x:num>9</td> <td class=xl8718790 style='border-top:none'> </td> <td class=xl8818790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl8518790 style='border-top:none'> </td> <td class=xl9418790 style='border-top:none' x:num>19</td> <td class=xl8218790 style='border-top:none;border-left:none'> </td> <td class=xl8318790 style='border-top:none;border-left:none'> </td> <td class=xl8718790 style='border-top:none;border-left:none'> </td> <td class=xl7418790 style='border-top:none;border-left:none'> </td> <td class=xl9518790 style='border-top:none'> </td> </tr> <tr class=xl8018790 height=18 style='height:13.5pt'> <td height=18 class=xl9618790 style='height:13.5pt;border-top:none' x:num>10</td> <td class=xl9718790 style='border-left:none'> </td> <td class=xl9818790 style='border-left:none'> </td> <td class=xl9918790 style='border-left:none'> </td> <td class=xl10018790 style='border-top:none;border-left:none'> </td> <td class=xl10118790 style='border-top:none;border-left:none'> </td> 这样的格式,用迭代会有很多问题,用迭代序号1-20就没法控制,因为就是没有得到数据,我也要显示1-20全部的表格的
少主无翼 2013-03-19
  • 打赏
  • 举报
回复
你是在后台就将两个list分开了吗 这样的话你在迭代一个的时候顺便迭代第二个应该就可以了吧 <s:iterator/>不是有个status值吗 这个值是用来标识集合迭代的下标的 利用这个看看能不能使用<s:property value="list2[status].name"/>这种形式获得第二个集合的值 我没验证你可以试试看
坚持2012 2013-03-19
  • 打赏
  • 举报
回复
引用 1 楼 hqshaozhu 的回复:
看你的代码你其实就是想对list进行迭代是吧
这样的话用<s:iterator/>就可以了 不需要自己进行下标的增长的 Struts2标签库中的 你可以去看看

迭代解决不了我的问题的,不然我也不会这么写的:
如图所示的jsp页面,我需要按照1,2,3...20序号一次显示两个list集合,服务端得到list1<wuliao1>和list2<wuliao2>两个集合,对他们依次显示,list1显示完显示list2,用迭代的话就会改变jsp的格式的
少主无翼 2013-03-19
  • 打赏
  • 举报
回复
看你的代码你其实就是想对list进行迭代是吧 这样的话用<s:iterator/>就可以了 不需要自己进行下标的增长的 Struts2标签库中的 你可以去看看
坚持2012 2013-03-19
  • 打赏
  • 举报
回复
引用 8 楼 boyazuo 的回复:
最终效果不就是1和11,2和12在同一行吗? 你用一个list就行,两个list就这样: <s:iterator status="status" begin="0" end="9"> <s:set value="#status.index" var="idx"/> <s:property value="#status.count" />:${list1[idx]……
这样还是不行呢,我要的效果是先迭代玩list1再迭代list2,而且是按照需要的顺序来,例如,list1到9结束,list2就从10开始,list1到3结束,list2就从4开始,明白我的意思吗,如果要向上面那样写还会有很多问题

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧