<%! public void write_wizim(int i)
{ System.out.print("<td align='center' valign='middle' class='STYLE44'>");
System.out.print(i);
System.out.print("</td>");
}
%>
以上是一个输出表格的函数的声明。我在网页中的调用这个函数
<%
int i;
for(i=1;i<=33;i++)
{
write_wizim(i);

}
%>
可是居然什么表格也没输出,请问是怎么回事?-------------------------------
顺便问一下,我的在声明中定义有关数据库查询的函数,为什么总是出现异常,提示我捕捉。
<%!

                   Connection con;
Statement sql;
ResultSet rs;
String ins;

public void write_wizim(int i)
{
ins="select count(*) from 6_38 where q1="+i;
rs=sql.executeQuery(ins);
rs.next();
System.out.print("<td align='center' valign='middle' class='STYLE44'>");
System.out.print(i);//rs.getString(1));
System.out.print("</td>");
}
%>

解决方案 »

  1.   

    System.out.println()是在控制台输出
    如果在页面输出应该是用out.println
    出什么异常啊 把错误信息帖一下
      

  2.   

    1、system.out.println()更改为:out.println()
    2、关于操作数据库的部分放到try{}catch(){}块内
      

  3.   

    你这个方法是写在后面JAVA文件里的吧
    上面改为
    <%!public void write_wizim(int i)
    {String text = "<td align='center' valign='middle' class='STYLE44'>"+i+"</td>";
    retrun text;
    }
    %>
    下面改为
    <%
    int i;
    for(i=1;i<=33;i++)
    {
    out.print(write_wizim(i));}
    %>
    另外,你的这种方法是循环一次就读一次数据库的,不合理,还是先全部读出数据库存入数组再循环取数组的值比较好
      

  4.   

    如果是在页面显示,把System.out.print()改为out.print();
      

  5.   

    retrun text;
    改为
    return text;
    呵呵,笔误
      

  6.   

    给你一个建议
    能不在jsp 中放java code  就不要在jsp 中方java code你可以通过jstl 表达式 和自定义标签来把后台执行的数据在jsp 上表示
      

  7.   

    public void write_wizim(int i)
    {
    ins="select count(*) from 6_38 where q1="+i;
    try{
    rs=sql.executeQuery(ins);
    rs.next();
    out.print("<td align='center' valign='middle' class='STYLE44'>");
    rs.getString(1));
    out.print("</td>");
    }catch(Exception e){}
    }
      

  8.   

    可是<%!...%>不能放out.print啊?提示找不到out变量。
      

  9.   

    是不是out.print只能放在<%%>中,不能放在声明中啊?
    还有数据库相关的操作要是不放在try{}catch(){}中,好像有的时候还是可以运行的,这个异常的捕捉是必须做的吗?谢谢大家
      

  10.   

    数据库操作是必须用try(){}catch(){}的,安全性方面的考虑。