首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

请教小弟我在StringBuffer里构建的HTML标签,小弟我在for循环显示td里的值,第一行没有关问题,但第二行后,标签出有关问题了,这咋回事。如何解决

2012-07-30 
请问我在StringBuffer里构建的HTML标签,我在for循环显示td里的值,第一行没问题,但第二行后,标签出问题了,

请问我在StringBuffer里构建的HTML标签,我在for循环显示td里的值,第一行没问题,但第二行后,标签出问题了,这怎么回事。怎么解决。
package com.yidu.catersystem.socket;

import java.util.ArrayList;

import com.yidu.catersystem.entity.SysChangeDutyBean;
import com.yidu.catersystem.form.SysChangeDutyForm;

public class BrowsInterIml implements BrowsInter {

public String getMess(ArrayList<SysChangeDutyBean> list, String ip, int port) {
// TODO Auto-generated method stub
StringBuffer stringB=new StringBuffer();
String str = "http://"+ip+":"+port+"/caterSystem/sysChangeDuty.do?method=selectChange";
stringB.append("<html>");
stringB.append("<head>");
stringB.append("<body background=\"http://"+ip+":"+port+"/caterSystem/images/daronghebj.jpg \">");
stringB.append("<div style=\"height:870px; width:1400px; \">");
stringB.append("<div style=\"margin-top:200px; margin-left:80px; \">");
stringB.append("<form action=\"http://"+ip+":"+port+"/caterSystem/sysChangeDuty.do?method=selectChange\" method=\"post\">");
stringB.append("<table width=\"823\" height=\"76\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\" bordercolor=\"#CCFF99\">");
stringB.append("<tr>"); 
stringB.append("<td width=\"168\" height=\"36\" style=\"font-size:30px; \"><div align=\"center\">餐桌号</div></td>");
stringB.append(" <td width=\"222\" style=\"font-size:30px;\"><div align=\"center\">菜品名称</div></td>");
stringB.append("<td width=\"113\" style=\"font-size:30px;\"><div align=\"center\">份量</div></td>");
stringB.append("<td width=\"188\" style=\"font-size:30px;\"><div align=\"center\">描述</div></td>");
stringB.append("<td width=\"100\" style=\"font-size:30px;\"><div align=\"center\">操作</div></td>");
stringB.append("</tr>");
for (int i=0;i<list.size();i++) {
stringB.append("<tr>");
stringB.append("<td>"+list.get(i).getChangeID()+"</td>");
stringB.append("<td>"+list.get(i).getHandller()+"</td>");
stringB.append ("<td>"+list.get(i).getAccepter()+"</td>");
stringB.append ("<td>"+list.get(i).getSuplus()+"</td>");
stringB.append("<td><a href="+str+">"+"成功"+"</a></td>");
stringB.append ("</tr>");

}
stringB.append("</table>");
stringB.append("</form>");
stringB.append("</div>");  
stringB.append("</div>");
stringB.append("</body>");
stringB.append("</html>");
return stringB.toString();
}

}


stringB.append("<td><a href="+str+">"+"成功"+"</a></td>");
就这里循环第二次的时候出问题了。求救!!



[解决办法]
for (int i=0;i<list.size();i++) {
stringB.append("<tr>");
stringB.append("<td>"+list.get(i).getChangeID()+"</td>");
stringB.append("<td>"+list.get(i).getHandller()+"</td>");
stringB.append ("<td>"+list.get(i).getAccepter()+"</td>");


stringB.append ("<td>"+list.get(i).getSuplus()+"</td>");
stringB.append("<td><a href="+str+">"+"成功"+"</a></td>");
stringB.append ("</tr>");

}

在这个前边判断下list的取值试试:

if(null != list && list.size()>0){
for(){}
}else{
//...
}
[解决办法]
list是什么
跟踪list的值看跟你的想象相同否
[解决办法]
你先把全部的stringB打印出来看看哪个地方有错啊。
[解决办法]
stringB.append("<td><a href="+str+">"+"成功"+"</a></td>");
这里当然有问题啦
应该是
stringB.append("<td><a href=\""+str+"\">"+"成功"+"</a></td>");

[解决办法]
我尝试运行了楼主的代码,循环的逻辑没有什么大问题,最多加上一个空值判断list是否为null,当数据有多个比如3个的时候是能够输出多行的数据。
我想你的问题在于测试的时候List传进来本身就只有一个数据,问题或许在那里

热点排行