站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题输出一个表格,列不固定,从数据库中取得,请问如何实现?

输出一个表格,列不固定,从数据库中取得,请问如何实现?

摘要: 输出一个表格,列不固定,从数据库中取得,请问如何实现?


我要在html画面上输出一个表格,比如说是下面这样格式的:

班级名 课程1 课程2 课程3
xxxxx 26人 27人 24人
xxxxx x人 x人 x人

数据库的字段是这样设计的:
id, class, course, amount

请问各位高手java代码应该怎么写?我想构造一个javabean,
然后在画面上用list循环输出,但是由于列不固定,要从数据库
中取得,所以不知怎么做,高手要帮忙了!


JavaBean照你的数据库设计:
public class ClassCourse {
private int id;
private String class;
private String course;
private int amount;

....

}

一个listA输出有多少门课程,确定列数,再有一个listB,存所有ClassCourse,循环listB,当listA的某一列的值相等(表示该班有这门课程)时,输出<td>人数</td>,否则输出<td></td>

你自己在考虑一下,应该不难得。


自己画html页面。


用%动态控制列的输出
for(int i=1;i........
if((i%3)==1){

%>
<tr>

<td align="center"><table width="100%" border="0" cellpadding="0" cellspacing="1" bordercolor="#999999">
<tr>
<td height="50" align="center" class="style1"><%=course%>&nbsp;</td>
</tr>
<tr>
<td height="50" align="center" class="style1"><%=score%>分&nbsp;</td>
</tr>
</table> </td>
<%}
else if((i%3)==2){%>
<td align="center"><table width="100%" border="0" cellpadding="0" cellspacing="1" bordercolor="#999999">
<tr>
<td height="50" align="center" class="style1"><%=course%>&nbsp;</td>
</tr>
<tr>
<td height="50" align="center" class="style1"><%=score%>分&nbsp;</td>
</tr>
</table> </td><%}
else if((i%3)==0){%>
<td align="center"><table width="100%" border="0" cellpadding="0" cellspacing="1" bordercolor="#999999">
<tr>
<td height="50" align="center" class="style2"><%=course%>&nbsp;</td>
</tr>
<tr>
<td height="50" align="center" class="style2"><%=score%>分&nbsp;</td>
</tr>
</table> </td>
</tr>

<%}rs3.next();}%>
</table>
...............
<%}}%>


mengfanpp(梦凡)的想法我明白,就是要在jsp页面要做很多判断,
如果课程数多的话,判断也就更多了,不过这也是一个方法,
我想有没有其他方法,不知道java中有没有动态生成属性的,
或者类似动态属性,这样就只要一个循环就出来了,大家说呢?


不知道java中有没有动态生成属性的,
或者类似动态属性,这样就只要一个循环就出来了


没见过!


先把要输出的数据从数据库中查询出来,以便在页面上使用
使用javascript画表格
var table = document.getElementById("yourTableId");

var firstRow = table.rows[0];
var firstCell = firstRow.insertCell(firstRow.cells.length);
firstCell.width = "100";
firstCell.innerHTML="课程1";

for(var i=1;i<table.rows.length-1;i++){
var conCell = conRow.insertCell(conRow.cells.length);
conCell.width = "100";
conCell.innerHTML="各班级人数";
}
这样就动态增加了一列,依葫芦画瓢,在外层加个循环,就可以画出其他课程的列


如果这样的话,就不要用BEAN,直接用一个VECTOR和一N个MAP,MAP里面放对应的课程名和成绩(查询出来的一条记录),然后MAP放到VECTOR中,页面中这样写
for(i = 0 ;i < vector.size();i++){
这里面遍历MAP,根据MAP的个数显示列!!
}


没想到更好的解决方法
关注一下


ResultSetMetaDat a rsmd = rs.getMetaData();
//获 取字段名
int numbe rOfColumns = rsmd.getColumnCou nt();
//获取字段数
然后
for (int i=1;i for (int j=1;j 格式化输出(rs.getXXX(j))
}
rs.next();
}



↑返回目录
前一篇: 菜鸟提问:运行JSP路径问题
后一篇: 目前,Tomcat最稳定的版本是哪个?(最后10分)