我的jsp中有以下代码。在输出中,行显示为列,列显示为行。
<%@page import="com.sun.crypto.provider.RSACipher"%>
<%@include file="DBCon.jsp" %>
<body><form action="Export1.jsp" method="post">
<table border="1px"><TR>
<%
ps=con.prepareStatement("Select * from Scope2");
rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int NumOfCol=rsmd.getColumnCount();
for(int i=1;i<=NumOfCol;i++)
{%></tr>
<%
try
{
ps=con.prepareStatement("Select * from Scope2");
rs=ps.executeQuery();
while(rs.next()){
%>
<td><%=rs.getString(i)%></td>
<%
}
}
catch(Exception e)
{
out.println(e);
}}%>
</table><table><tr>
<input type="Submit" value="Export"></tr></table></form></body>
,输出如屏幕1所示,但我希望输出与屏幕2一样。请帮帮我。
感谢。
答案 0 :(得分:1)
您忘记了每个</tr>
循环结束时的for
标记。这就是创建格式化问题。
为什么你在for
循环中再次执行该查询,而你可以使用之前获得的ResultSet rs
?
答案 1 :(得分:1)
你搞乱了行格式和循环。这是更新的代码 -
<body><form action="Export1.jsp" method="post">
<table border="1px">
<%
ps=con.prepareStatement("Select * from Scope2");
rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int NumOfCol=rsmd.getColumnCount();
while(rs.next())
{%>
<TR>
<%
try
{
for(int i=1;i<=NumOfCol;i++){
%>
<td><%=rs.getString(i)%></td>
<%
}
}
catch(Exception e)
{
out.println(e);
}
%></TR><%}%>
</table><table><tr>
<input type="Submit" value="Export"></tr></table></form></body>
希望有所帮助。