当前页面: 开发资料首页 → 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%> </td>
</tr>
<tr>
<td height="50" align="center" class="style1"><%=score%>分 </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%> </td>
</tr>
<tr>
<td height="50" align="center" class="style1"><%=score%>分 </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%> </td>
</tr>
<tr>
<td height="50" align="center" class="style2"><%=score%>分 </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();
}