请教把数据库的数据平均分成三行显示的问题

yeyuanzhi2016 2018-03-17 11:07:10
调取数据库的数据,并平均分成三行显示,自己写的代码如下:
<%String id=request.getParameter("classid"); 
List<Info> textlist=(List)request.getAttribute("list1"); // 取request里面的对象队列
for(int i=0;i<textlist.size()/3;i++){
%>
<div class="item"> <%=textlist.get(i).getTitle()%></div>
<%} %>
</div>
<div>
<% for(int i=0;i<textlist.size()/3;i++){ %>
<div class="item"> <%=textlist.get((textlist.size()-1-i)).getTitle()%></div>
<%} %>
</div>
<div>
<% for(int i=0;i<textlist.size()/3;i++){%>
<div class="item"><%=textlist.get(textlist.size()-1-i*2).getTitle()%></div>
<%} %>
</div>

效果如图

问题是,有重复字,也有些字没显示出来,请教高手上面的代码有什么问题,怎么修改?谢谢!
...全文
379 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyuanzhi2016 2018-03-19
  • 打赏
  • 举报
回复
哪位高手能解答一下?
yeyuanzhi2016 2018-03-19
  • 打赏
  • 举报
回复
谢谢楼上的几位大神!
zhouyusunquan 2018-03-19
  • 打赏
  • 举报
回复
自己写个div样式,一排只能放三个,也可以解决
flamen087 2018-03-19
  • 打赏
  • 举报
回复

<%String id=request.getParameter("classid"); 
List<Info> textlist=(List)request.getAttribute("list1"); // 取request里面的对象队列
int size = textlist.size() % 3 == 0 ? textlist.size() / 3 : textlist.size() / 3 + 1;
      for(int i=0;i<size;i++){
%>
<div  class="item"> <%=textlist.get(i).getTitle()%></div>
    <%} %>    
  </div>
 <div>
<% for(int i=size;i<size*2;i++){     %>
 <div  class="item"> <%=textlist.get(i).getTitle()%></div>
       <%} %>      
    </div>
        <div>
<% for(int i=size * 2;i<textlist.size();i++){%>
 <div  class="item"><%=textlist.get(i).getTitle()%></div>
    <%} %>      
    </div>
xwn_2016 2018-03-19
  • 打赏
  • 举报
回复
类似这样的吧,先去重,在循环,用下边这段代码修改下试试
	List<Info> textlist=(List)request.getAttribute("list1");
        Set set = new  HashSet(); 
        List newList = new  ArrayList(); 
        for (String cd:lists) {
           if(set.add(cd)){
               newList.add(cd);
           }
        }
        System.out.println( "去重后的集合: " + newList);
        
        int len = newList.size()%3 == 0 ? newList.size()/3 : newList.size()/3+1;
        for(int i = 0 ; i < len; i++){
        	<div  class="item"> <%=newList.get(i).getTitle()%></div>
        }
fox_tail_ 2018-03-18
  • 打赏
  • 举报
回复
这个判断条件应该不对 i<textlist.size()/3; 举个例子当textlist.size()=16;i就能取到4,每行有五个,最后就会丢一个。
yeyuanzhi2016 2018-03-18
  • 打赏
  • 举报
回复
谢谢,能贴出具体代码吗?

81,094

社区成员

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

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