对于ResultSet的循环,JSP中的getFetchSize()不会产生任何HTML

时间:2012-08-03 20:03:59

标签: html jsp jdbc scriptlet

我有以下代码:

 <%
            for (int i = 0; i < rs.getFetchSize(); i++) {
                System.out.print("test");
                //blah
%>
        <div id="Test<%= out.print(i) %>">
            <div class="<%= oddOrEven(i)%>Header">
                <div class="<%= oddOrEven(i)%>A">Test<% out.print(i);%></div>
                <div class="<%= oddOrEven(i)%>B"> 
                //Stuff here

Odd或者甚至只是根据我传递给它的数字来回应单词奇数或偶数,这应该使我的css样式在灰色之间交替。

当我编译页面时,它可以工作,但这部分完全省略,不会出现在源代码中。有人可以帮我搞定吗?

2 个答案:

答案 0 :(得分:3)

ResultSet#getFetchSize()不会像您期望的那样返回返回记录的数量。它只返回配置的提取大小。例如,它可能只返回0,具体取决于JDBC驱动程序配置和语义。

只需使用ResultSet#next() the usual way将光标移动到下一行。

for (int i = 0; rs.next(); i++) {

也就是说,在JSP文件中编写Java代码是officially discouraged since a decade。我建议也在这方面工作。

答案 1 :(得分:0)

这个怎么样:

<%
for(int i = 0; i < rs.getFetchSize(); i++)
{
%>
<div id="Test<%= i%>">
  <div class="<%= oddOrEven(i)%>Header">
     <div class="oddOrEven(i)A">Test<%= i%></div>

<%
}
%>

你缺少一个完成for循环的最后一个大括号

此外,您无需提供... out.println()...&lt;%=%&gt;会为你做那件事