Jsp表以错误的方式打印

时间:2012-11-07 13:16:55

标签: jsp jdbc

我的jsp中有以下代码。在输出中,行显示为列,列显示为行。

enter image description here

<%@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一样。请帮帮我。

感谢。

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>

希望有所帮助。