片段1: <%
String[] work = new String[24];
for (int i = 0; i < 24; i++) {
if (work[i].equals("1")) {
%>
<td align="center" bgcolor="#009900"> </td>
<%
} else {
%>
<td align="center" bgcolor="#E8E8E8"> </td>
<%
}
}
%>片段2:<%
for(int i=0; i<4; i++){
out.println("<tr higth=\"20\">");
}
%>
片段3:<%
List list2 = (List)request.getAttribute("list2");
if (list2 != null && list2.size() != 0) {
int i = 0;
for (Iterator iter = list2.iterator(); iter.hasNext();) {
sp = (SecondPage) iter.next();//SecondPage是一个javabean
i++;
out.println("<tr>");
out.println("<td>" + sp.getLicense() + "</td>");
out.println("<td>" + sp.getGps_begin() + "</td>");
out.println("<td>" + sp.getGps_end() + "</td>");
out.println("</tr>");
}
for (int j = i; j < 4; j++) {
out.println("<tr");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("</tr>");
}
}
%>
String[] work = new String[24];
for (int i = 0; i < 24; i++) {
if (work[i].equals("1")) {
%>
<td align="center" bgcolor="#009900"> </td>
<%
} else {
%>
<td align="center" bgcolor="#E8E8E8"> </td>
<%
}
}
%>片段2:<%
for(int i=0; i<4; i++){
out.println("<tr higth=\"20\">");
}
%>
片段3:<%
List list2 = (List)request.getAttribute("list2");
if (list2 != null && list2.size() != 0) {
int i = 0;
for (Iterator iter = list2.iterator(); iter.hasNext();) {
sp = (SecondPage) iter.next();//SecondPage是一个javabean
i++;
out.println("<tr>");
out.println("<td>" + sp.getLicense() + "</td>");
out.println("<td>" + sp.getGps_begin() + "</td>");
out.println("<td>" + sp.getGps_end() + "</td>");
out.println("</tr>");
}
for (int j = i; j < 4; j++) {
out.println("<tr");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("</tr>");
}
}
%>
解决方案 »
- JAVA作业 帮个忙 谢谢
- spring声明式事务遇到数据库约束操作失败的问题
- 关于解析XML的 高手们帮帮忙啊 真的很急啊!
- 如何通过html来调用web service?
- 连接不上MYSQL数据库,在线等待
- 如何学习Struts源代码
- 求助:html:select问题,在线等~~~~
- J2EE在做实体BEAN的时候遇到的问题,下面是出错提示,大家帮帮忙看看问题出在什么地方。
- 哪位有weblogic上JMS的开发实例(定制、发布、接受Message)提供?谢谢!
- 用EJB一定不能使用java.io操作吗?
- Struts+hibernate+spring出现空指针问题
- 获取容器的服务器错误页面servlet中如何获取http响应码
还有如果要用JSTL,也请给代码!!!
try{
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
StringBuffer sb = new StringBuffer();
UserSession curUser = (UserSession) request.getSession(true).getAttribute(Constants.bbsuser);
int classId = ReqUtils.getInt(request,"cId");
int forumId = ReqUtils.getInt(request,"fId");
int curPage = ReqUtils.getInt(request,"curPage");
String action = ReqUtils.getString(request, "action");
List alltop = ArticleBiz.getAllTop();
List classtop = ArticleBiz.getClassTop(classId);
List forumtop = ArticleBiz.getForumTop(forumId);
List otherlist = null;
String forumAdmin = ForumBiz.getForumAdmin(forumId);
String forumadmin[] = null;
//不采用ibatis的分页 则xml中sql需要传入每一个分页的开始和结束位置 故采用hashmap存储参数
int arttotal = 0;
int pagesize = 20;
int start = 0;
String link = "";
if(curPage>1){ // 如果不是第一页,则从该页的第一条开始
start = (curPage-1)*pagesize;
}
HashMap<String, Integer> forumpage = new HashMap<String, Integer>();
forumpage.put("forumid",forumId);
forumpage.put("start",start);
forumpage.put("end",pagesize);
if(action.equals("j")){
link = "Forum.htm?cId="+classId+"&fId=" + forumId + "&action=j";
arttotal = ArticleBiz.getForumEliteC(forumId);
otherlist = ArticleBiz.getForumElite(forumpage);
}else{
link = "Forum.htm?cId="+classId+"&fId=" + forumId;
arttotal = ArticleBiz.getFmNoTopArtC(forumId);
otherlist = ArticleBiz.getForumArt(forumpage);
}
Pages pages = new Pages(arttotal, curPage,pagesize,link);
ArticleDto article = null;
String titleImg = "";
String postTime = "";
String lastPTime = "";
String isLock = "";
String isVote = "";
int lastUserId = 0;
sb.append("<table align=center cellSpacing=0 cellPadding=0 width=100%>");
sb.append("<tr><td><a href=Post.htm?cId=");
sb.append(classId);
sb.append("&fId=");
sb.append(forumId);
sb.append("&action=post>");
sb.append("<img src=webapp/images/newpost.gif border=0 alt=发表新帖子></a> ");
sb.append("<a href=Post.htm?cId=");
sb.append(classId);
sb.append("&fId=");
sb.append(forumId);
sb.append("&action=vote>");
sb.append("<img src=webapp/images/newvote.gif border=0 alt=发表新投票></a>");
sb.append("</td><td align=right><img src='webapp/images/jinhua.gif'> ");
sb.append("<a href='Forum.htm?cId=");
sb.append(classId);
sb.append("&fId=");
sb.append(forumId);
sb.append("&action=j'>");
sb.append("<b>精华帖子</b>");
sb.append("</a>");
sb.append("</td>");
sb.append("<form name=jumpca>");
sb.append("<td align=right width='140px'>");
sb.append("<img src=webapp/images/forumadmin.gif border=0 alt=论坛版主> ");
sb.append("<select name=jumpca onchange=adminshow()>");
sb.append("<option>论坛版主 :</option>");
sb.append("<option>----------</option>");
if(forumAdmin.length()>1){
forumadmin = StringUtils.split(forumAdmin, ",");
for(int j=0; j< forumadmin.length; j++) {
sb.append("<option value=User.htm?uId=");
sb.append(UserBiz.getUserId(forumadmin[j]));
sb.append(">");
sb.append(forumadmin[j]);
sb.append("</option>");
}
}
sb.append("</select> </td>");
sb.append("</form>");
sb.append("</tr>");
sb.append("</table>");
out.println(sb);
sb = null;
}catch(Exception e){
bbslog.error("ForumList tag's doEndTag error!");
}
return 6;
}
<tr>
<td><c:out value="${sp.license}"/></td>
<td><c:out value="${sp.gps_begin}"/></td>
<td><c:out value="${sp.gps_end}"/></td>
</tr>
</c:forEach>
在jsp引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
或者
<%@ taglib prefix="c" uri="WEB-INF/c.tld" %>
(前提:把jstl标签加入到web-inf目录)
<s:iterator value="#request.list2" status="statu" id="sp">
<tr>
<td><s:property value="license" /></td>
<td><s:property value="gps_begin" /></td>
<td><s:property value="gps_end" /></td>
</tr>
</s:iterator>这个应该没错。
晕!
5楼的和8楼的应该回复的是片段3的代码吧,可是里面有一个i++没有看到吗?
还有里面的第二个for循环条件是for (int j = i; j < 4; j++) {},这里面也用到了i,你们那个真是不靠谱了。
期待有其他人能搞定.....
等待中......
不知道你的那个String数组怎么生成,
但是下面的if判断还是实现了
我是把你的数组保存在request中,命名为list
<s:iterator id="str" value="#request.list">
<tr>
<td><s:property value="#str"/></td>
<s:if test="#str==\"1\"" >
<td align="center" bgcolor="#009900">
</td>
</s:if>
<s:else>
<td align="center" bgcolor="#E8E8E8">
</td>
</s:else>
</tr>
</s:iterator>
<c:choose>
<c:when test="${string == 'l'}">
<td align="center" bgcolor="#009900"> </td>
</c:when>
<c:otherwise>
<td align="center" bgcolor="#E8E8E8"> </td>
</c:otherwise>
</c:choose>
</c:forEach>
<tr higth="20">
</c:forEach>
希望那个片段3有人能写出来,谢谢!
希望大家尽量用Struts2.0的标签实现!
后台java代码:do {
list2.add(null);
} while(list.size() < 4);
request.setAttribute("list2", list2);
JSP代码:<c:if test="${list2!= null}">
<c:forEach var="sp" items="${list2}" varStatus="status">
<tr>
<td><c:out value="${sp.license}" /></td>
<td><c:out value="${sp.gps_begin}" /></td>
<td><c:out value="${sp.gps_end}" /></td>
</tr>
<c:if test="${sp== null}">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</c:if>
</c:forEach>
</c:if>
jstl标签最多遍历list2.size()行。
我找不到让它一共遍历4行的办法。
只能后台设置list2里面4个对象。
多余的用null填充。struts2还没学。不过标签使用原理都是一样的。
如果struts2支持自定义设置遍历次数的话,
后台就不用设置 null 对象进 list2 了。
还有你写的片段3的代码对吗?
我的意思是指你的那段do、while循环,好像不对吧。
你写的那个是死循环吧,比如list.size()==1的话,那不是永远都在循环吗?等待...
我是没有看见struts2可以生成你想要的数组,要不你试试<s:generator>标签
<s:generator count="4"
val="'0,1,2,3,4,5,6'" separator=",">
<s:iterator status="st">
<tr height="20px">
</s:iterator>
</s:generator>
val中的值是手动写的,应该也可以自动完成,其实你可以再request中去保存你想要的数组,在用标签表示出来,感觉你现在是想用标签去创建数组?
// 你看不出来哪儿写错了啊?
do {
list2.add(null);
} while(list2.size() < 4);
request.setAttribute("list2", list2);
还不结账?
你参照这个自己去使用 struts2 的标签实现。
标签使用原理都是一样的只是设置标签属性和属性值的语法不一样。自己学习学习!
String[] work = new String[24];
%>
<s:iterator value="work">
<s:property /> <br />
</s:iterator>
===================================
2:<s:generator count="4" val="%{'1,2,3,4'}" separator=",">
<s:iterator>
<tr height="20px">
</s:iterator>
</s:generator>
片段1:
<c:forEach var="i" begin="0" end="23">
<logic:euqal value="1" name="i">
<td align="center" bgcolor="#009900"> </td>
</logic:euqal>
<logic:notEuqal value="1" name="i">
<td align="center" bgcolor="#E8E8E8"> </td>
</logic:notEuqal>
</c:forEach>
片段2:
<c:forEach var="i" begin="1" end="4">
<tr higth="20">
</c:forEach>
片段3:
<c:set var="list" value="${requestScope.list2}" />
<logic:present name="list2"> <!-- 判断list2是否存在 -->
<c:set var="i" value="${fn.length(list)}"></c:set> <!-- 用fn获得list的size() -->
<c:forEach var="sp" items="${requestScope.list2}">
<tr>
<td>${sp.license }</td>
<td>${sp.gps_begin }</td>
<td>${sp.gps_end }</td>
</tr>
</c:forEach>
<c:if test="${i<4}"> <!-- 如果i大于4不循环 -->
<c:forEach var="j" begin="${i}" end="4"> <!-- 用fn获得list的size() -->
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</c:forEach>
</c:if>
</logic:present>3个都测试通过~记得在jsp先导入这些<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
楼上的是我见过写的最好的实现题目要求的代码,虽然仍然是用JSTL实现的,不过写的很好!
有一点想问一下:
<c:set var="i" value="${fn.length(list)}"></c:set> <!-- 用fn获得list的size() -->
此i的值其实就是list2的size,难道不能直接取list2中的值吗?
即value="${fn.length(requestScope.list2)}",我猜测应该不可以吧,不过仍然希望你能回答一下。还有<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
一般的struts中的jar包中包含的只有4个标签库,昨天我看到这个东西,知道了这个标签可以去list的size,
但是没有下载到! 你那里应该有吧,能传给我吗?谢谢了!
我的联系方式:QQ : 573 673 828 Email:[email protected] 或者 [email protected]
传给我后,请留言,告知传到哪个里面,谢谢!到时候结贴给分!