<% ResultSet res = (ResultSet)request.getAttribute("res");
    int i=0;
  if(res!=null){
    while(res.next()){
   %><tr><%
   if(i==0){%>
   <td></td><td>pro_id</td><td></td></tr><tr>
   <% }
   i++;
   %>
    <td></td><td><%=res.getString(i) %></td><td></td>
  </tr>
  <%} }%>
res 是有值返回的,返回一个非主键的属性值,为什么每次提交之后只有返回有两个值或两个值以上的res的时候才会有打印呢?getString()不是从1开始取的么,希望大家帮我改改~

解决方案 »

  1.   

    if(res!=null){
        %>
         <tr>
          <td></td><td>pro_id</td><td></td>
    </tr>
    <%
       while(res.next()){
          %><tr><td></td><td><%=res.getString(i) %></td><td></td>
    </tr>
    }
    哈哈。
      

  2.   

    为什么每次提交之后只有返回有两个值或两个值以上的res的时候才会有打印
    你是不是在前面用过了if(rs.next()) 方法了啊?那个占用了一个结果集啊,当然你的while(rs.next()))时,从第二个开始了如果你只有一个结果,这里就没有结果了
      

  3.   


    这个差不多!getString()是返回当前行的列值,是从1开始。  <% ResultSet res = (ResultSet)request.getAttribute("res");
           int i=0;
         if(res!=null){
           res.beforefirst();
           while(res.next()){
          %><tr><%
                  if(i==0){%>
                  <td></td><td>pro_id</td><td></td></tr><tr>
                  <% }
                  i++;
                  %>
           <td></td><td><%=res.getString(i) %></td><td></td>
      </tr>
      <%} }%>