雅嘻嘻oo 发表于 2013-2-7 23:12:37

从session中取出集合 动态位置显示集合内容到div

<div class="cnt">【原创】不知道大家是否有这样的经历,你把从数据库取到的N多bean放到了集合中 然后响应到jsp,通过jsp标签取出这些bean 并且把这些bean的属性按照一定规律放置到div,并且要求以每行4个显示。
可能你有点晕 不知道我在说什么
举个例子
我从数据库查询完东西 得到一个集合 集合里面有N多个bean(Album)
是这样的bean
public void Album{
private int id;
private String name;
private String img;
...省略
}
然后把这个集合 放到了httpSession中

然后响应到某jsp中

这个jsp需要迭代取出这个bean
其实取出的就是相册(Album)它有名称 和 封面图片
然后把它显示在如下的div中
<div>
相册名称:${取出的名称}
<img src="取出的链接">
</div>

取出多少个bean 就有多少个这样的div

但是我需要让这些div 以每行4个显示 显示N行。还需要设置绝对定位。

就是以行的概念,一行显示4个 超过4个换行显示 直到把我所查的这些相册显示完为止
解决方案1:以table定位来显示
-----------------------------------------------
<body>
<%
List list=new ArrayList();
for(int i=0;i <20;i++)
{
Album a=new Album();
a.setName("名字"+i+1);
list.add(a);
}
session.setAttribute("listAlbum",list);
%>
以上假设 放入20个bean到集合

<table>
<tr>
<logic:iterate id="tphoto" name="listAlbum" indexId="i">
<c:if test="${i%4!=0}">
<td>

</td>
</c:if>
<c:if test="${i%4==0}">
</tr>
<tr>
<td>

</td>
</c:if>
</logic:iterate>
</tr>
</table>
</body>

打印出的效果

雅 周 周 周
雅 周 周 周
雅 周 周 周
雅 周 周 周
雅 周 周 周
================================================================================

解决方案2:以绝对定位div来显示
------------------------------------------------------------------------------------
<script type="text/javascript" src="jslib/jquery.js"></script>
    <script type="text/javascript">
     var x=10,y=0;
    </script>
</head>

<body>
            <%
             //模仿从数据库取出数据
            List list=new ArrayList();
            for(int i=0;i<20;i++)
            {
                 Album a=new Album();
                 a.setName("名字"+i+1);
                 list.add(a);
            }
               session.setAttribute("listAlbum",list);
             %>

    <div id="exterior_div" >
    </div>
     <div id="spare_div" style="display:none">
             <div style="position:absolute;width:240px;height:220px;background-color:red"></div>
     </div>
           
                <logic:iterate id="tphoto" name="listAlbum" indexId="i">
                    <c:if test="${(i+1)%4!=0}">
               
                        <script type="text/javascript">
                        $("#spare_div").find("div").css("top",y).css("left",x);
                        $("#spare_div").find("div").html("${i+1}");
                        $("#spare_div").children().clone().appendTo("#exterior_div");
                        alert("x="+x+";y="+y+" 第"+${i+1}+"个|上");
                        x=x+250;
                        </script>
       
                    </c:if>
                    <c:if test="${(i+1)%4==0}">
                        <script type="text/javascript">
                        $("#spare_div").find("div").css("top",y).css("left",x);
                        $("#spare_div").find("div").html("${i+1}");
                        $("#spare_div").children().clone().appendTo("#exterior_div");
                        alert("x="+x+";y="+y+" 第"+${i+1}+"个|下");
                        y=y+230;
                        x=10;
                       
                        </script>
                    </c:if>
                </logic:iterate>
       
   
    </body>
以上的js是使用的jquery框架
<span style="color: #ff0000;"><span style="color: #000000;">运行效果 http://hiphotos.baidu.com/qq136836301/abpic/item/04031dfac8c206376d22ebae.jpg20个红色的div 以每行4个显示
如果看不到截图 请到http://hi.baidu.com/qq136836301/blog/item/998240fbc635059f59ee90e4.html我的百度空间 去看本文。
如果还不明白可以加QQ136836301
页: [1]
查看完整版本: 从session中取出集合 动态位置显示集合内容到div