jsp页面中如何动态创建表格的行列
Posted
技术标签:
【中文标题】jsp页面中如何动态创建表格的行列【英文标题】:How to dynamically create row and column of table in jsp page 【发布时间】:2013-10-04 16:58:54 【问题描述】:我正在尝试将数据从数据库检索到表中。 但数据必须动态加载。
如何动态创建我不知道的行和列? 如果它只是要创建的行,那么我会很容易地做到这一点,但我也想在页面上动态创建列,这就是为什么我很困惑如何执行它?
我的 JSP 代码:
<table border="1">
<%
mysql1 o = new MySql1();
o.connect();
ResultSet r;
int counter=1;
String q = "select * from category_master;";
r = o.getdata(q);
while(r.next())
%>
<tr>
<td><%= r.getString(1)%></td>
</tr>
<%
%>
</table>
现在我在<td>
中显示第一列,但如果用户不知道要检索多少列,那该怎么办?
在select query
中,我使用了*
,所以我对使用<td>
感到困惑。
我想要全部动态,因为假设我也将使用任何文本框或 url 动态传递表名。
这里MySql
1 是一个类文件,它具有执行操作的方法。
connect()
用于连接db,getdata()
用于检索作为参数传递的查询数据,getdata()
方法的返回类型为Resultset
。
所以这就是我想要所有动态的原因,但我不知道该怎么做。
【问题讨论】:
【参考方案1】:试试这个代码:
<table border="1">
<%
MySql1 o = new MySql1();
o.connect();
ResultSet r;
int counter=1;
String q = "select * from category_master;";
r = o.getdata(q);
ResultSetMetaData metaData = r.getMetaData();
while(r.next())
%>
<tr>
<%
for(int i = 1; i<=metaData.getColumnCount();i++)
%>
<td>
<%= r.getString(i)%>
</td>
<%
%>
</tr>
<%
%>
</table>
【讨论】:
先生,如果我将编写查询以使用 select * 获取所有数据但我不想要一个字段,是否有可能。这种事情可能与否?假设它是用户详细信息表,我不想显示密码,除非我想要所有数据。 看这个问题:***.com/questions/14253994/… 先生,我没有完全理解它的含义,我是这个领域的初学者,所以这就是我面临问题的原因。你能告诉我怎么做吗? 先生,我已经实现了 2 个机制。首先我从表中获取列名并显示为标题,然后在第二个中我从表名中获取数据但它在第二个实现中显示 ResultSetMetaData 声明中的错误,如果我直接传递表名而不是从其他页面获取的变量然后它在 ResultSetMetaData delaration 中显示错误... 我已经用代码先生发布了我的问题。***.com/questions/19095898/…【参考方案2】:我做了jsp页面这样测试
这里是test.jsp
<table border="1">
<thead>
<tr>
<td>Volume</td>
<td>XmlTitle</td>
<td>getYear</td>
</tr>
</thead>
<tbody>
<%
Journal journal = Journal.findByCode("antipoda");
List<Issue> normalIssues = journal.getIssuesOfType(IssueType.NORMAL);
for (Issue issue : normalIssues)
out.print(String.format("<tr>" +
"<td>%s</td>" +
"<td>%s</td>" +
"<td>%d</td>" +
"</tr>",
issue.getVolume(),issue.getXmlTitle(),issue.getYear()));
out.flush();
%>
</tbody>
</table>
您可以将 scriptlet 更改为通过您要显示的模型进行迭代的代码
希望对你有帮助
【讨论】:
以上是关于jsp页面中如何动态创建表格的行列的主要内容,如果未能解决你的问题,请参考以下文章