做了一个下载的东西,但是在页面显示的时候遇到问题了。代码如下:
<c:forTokens  var="str" items="${sysAnnounce.accessoryURL}"  delims=";" varStatus="status">
   <c:forTokens  var="str1" items="${sysAnnounce.fileName}" delims=";" varStatus="status">  
          <c:out value=""/><a href="download.action?file=${str}">${str1}</a>
   </c:forTokens>
</c:forTokens>
   比如我数据库又2个字段,分别存着1;2  和  3;4   而我想得到的是{1,3}、{2,4}这2个集合
可是用两个c:forTokens两次循环后出来的结果就变成{1,3}、{1,4}、{2,3}、{2,4}四个集合了(从上面的代码中很容易看出来)。   在下载文件环节中,1、2就相当于文件的名称,3、4则是文件在服务器上的唯一标示名。着两个名称即是不一样的,但却又是要相互对应的。否则用户将下载到错误的文件(并非他想要下载的文件)。所以要1、3对应,2、4对应。   不知道能不能把这两个c:forTokens压缩成一个c:forTokens,让str和str1同时获得值。这样,一次循环就可以只输出2个集合了。由于小弟不太懂JSTL,所以弄了半天也没结果。
   请哪位大神帮忙解答下,谢谢

解决方案 »

  1.   

    这个为什么不在后台处理,要在页面处理?mvc,这个应该属于c吧........
      

  2.   

    要是能在一个c:forTokens 标签中同时处理两个var和items就好了。JSTL就不支持多个字符串同时处理吗?非得分开做2次循环吗?
      

  3.   

    怎么没人回答啊?是我表达不清楚还是这问题无解?
    我的意思就是str和str1同时取到第一组数据时,才能执行download.action
    当str和str1同时取到第二组数据时,才能执行download.action
    就是说要想执行download.action,str和str1取到的一组值必须是相互对应的。
      

  4.   

    就是一个<c:forTokens>能同时处理2个items吗?