在线等:求用Struts标签循环显示四行四列的图片

spring028 2008-03-23 02:41:01

=======================================================================
存储数据集的list:

public ActionForward getAllSideTypeAction(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {


AlbumModel albummodel =new AlbumModel();
AlbumDAO albumdao=new AlbumDAO();

java.util.ArrayList list=new java.util.ArrayList();
list=albumdao.getAllalbum1(albummodel);
request.setAttribute("list", list);

if(list==null)
System.out.println(list.size());

request.setAttribute("list", list);
return mapping.findForward("addtype"); //对应到下面的jsp页面上了。
}


========================================================================
下面是图片循环成四行四列的代码:


<table width="100%" border="0" cellspacing="0" cellpadding="0" class="photo_small">
<logic:iterate name="list" id="a" indexId="i" offset="1">
<bean:define id="temp" value="${(i-1)%4}"></bean:define>
<bean:define id="temp1" value="${i%4}"></bean:define>
<logic:equal name="temp" value="0">
<tr>
</logic:equal>


<td width="25%">

<a href="showTypePhoto.do?ialbumId=<bean:write name="a" property="palbum_id"/>">
<!-- 如果没有相片就显示一张默认的图片-->
<logic:empty name="a" property="cname">
<img src="images/photo01.gif" alt="photos" border="0" />
</logic:empty>
<!--显示此分类最新上传的相片-->
<logic:notEmpty name="a" property="cname">

<img src="<bean:write name="a" property="cname"/>"alt="photos" border="0" />
</logic:notEmpty>
</a>


<div><strong>
<bean:write name="a" property="cname" />
<!-- 显示相册名字-->
</strong> <br>
<a href="#"> <logic:equal name="a" property="cname"value="2">
保密
</logic:equal>
</a>


<a href="editPhoto.do?palbum_id=<bean:write name="a" property="palbum_id"/>">
修改
</a>


<html:link page="/deleteHouseAlbum.do" paramId="palbum_id" paramName="a" paramProperty="palbum_id"
onclick="return confirm(' 您确定删除整个像册吗?\n注意:此操作将导致像册下所有相片全部删除!');">
删除
</html:link>
</div>


</td>


<logic:notEqual name="i" value="0">
<logic:equal name="temp1" value="0">
</tr>
</logic:equal>
</logic:notEqual>
</logic:iterate>
<logic:notEqual name="temp1" value="0">
</tr>
</logic:notEqual>
<tr>
<td colspan="4">
<div><logic:notEmpty name="list" scope="request">

<logic:iterate name="list" id="a" scope="request" length="1">

<logic:notEqual name="a" value="1">
<logic:equal name="curPage" value="1">

首页 上一页

<html:link page="/showAllPhotoside.do?curPage=${curPage+1}">下一页</html:link>
<html:link page="/showAllPhotoside.do?curPage=${a}">末页</html:link>

共 <bean:write name="a" /> 页/第 <bean:write name="curPage" /> 页
</logic:equal>

<logic:equal name="curPage" value="${a}">
<html:link page="/showAllPhotoside.do">首页</html:link>
<html:link page="/showAllPhotoside.do?curPage=${curPage-1}">上一页</html:link>
下一页 末页 共 <bean:write name="a" /> 页/第 <bean:write name="curPage" /> 页
</logic:equal>

<logic:notEqual name="curPage" value="1">
<logic:notEqual name="curPage" value="${a}">
<html:link page="/showAllPhotoside.do">首页</html:link>
<html:link
page="/showAllPhotoside.do?curPage=${curPage-1}">上一页</html:link>
<html:link
page="/showAllPhotoside.do?curPage=${curPage+1}">下一页</html:link>
<html:link page="/showAllPhotoside.do?curPage=${a}">末页</html:link>
共 <bean:write name="a" /> 页/第 <bean:write
name="curPage" /> 页
</logic:notEqual>
</logic:notEqual>

</logic:notEqual>
<logic:equal name="a" value="1">
首页 上一页 下一页 末页 共 <bean:write name="a" /> 页/第 <bean:write
name="curPage" /> 页
</logic:equal>
</logic:iterate>

</logic:notEmpty></div>
</td>
</tr>
</table>

</td>
</tr>
</table>


===========================================================
error:

(184125 ms) [http-8080-Processor23] ERROR: org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/photo].[jsp]#invoke : Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Cannot find bean list in any scope
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:992)
at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:234)
at org.apache.jsp.pt_005fclass_jsp._jspService(org.apache.jsp.pt_005fclass_jsp:237)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)



提示找不到list,郁闷死了,求牛人帮忙看一下。大家有没有这种类似的代码,贴上来看看啊。
...全文
186 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
philips_after 2010-03-05
  • 打赏
  • 举报
回复
<logic:iterate name="searchlist" id="shoplist" indexId="i"
offset="0">
<bean:define id="temp" value="${i%5}">
</bean:define>

<logic:equal name="temp" value="0">
<tr>
</logic:equal>
philips_after 2010-03-05
  • 打赏
  • 举报
回复
没法显示第一个图片
我用了其他没问题啊
spring028 2008-03-24
  • 打赏
  • 举报
回复
怎么没有人回复呢
goldlive_8888 2008-03-24
  • 打赏
  • 举报
回复
有两种方法:
1、在Action中,对数据进行二次封装,将每条记录都以一个键值对的形式放入一个大Map对象中(map.put("1-1",(Ojbect)list.get(i);...map.put("1-4",(Object)list.get(i));...map.put("2-1",(Ojbect)list.get(i);...),再将Map对象存入request中。注意之所以这样,是在页面取值时,要在每个特定的位置如(td或div)中取值(Object)map.get("1-1")等,这样你可以决定每个图片的位置。
2、使用jsp脚本,因为struts标签只能取出记录,但不利于排版和美工设计。
<%
int length = 16; // 4*4 四行四列
int pt = 0;
for(int i = 0; i< length; i++){
%>
<tr>
<%
for(int p = 0; p < 4; p++){
pt = 4*i + p;
if(pt < length){
Object obj = (Object)list.get(pt);
%>
<td>...</td>
<td>...</td>
...
<%
}
}
%>
</tr>
<%
}
%>
3、是利用<logic:iterate>标签的属性indexId进行判断,他是每条记录的序号,细节不说了。
spring028 2008-03-23
  • 打赏
  • 举报
回复
牛人都去哪了呀?

81,094

社区成员

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

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