为何以下方法不会被调用,编译出错
<%!
public void f()
{
    out.println("abc");
}
%>
<% f(); %>
虽然不实用,但是我想了解一下原理

解决方案 »

  1.   

    提示out cannot be resolved
      

  2.   

    <%
    public void f()
    {
      out.println("abc");
    }
    %>
    感叹号是不是要去掉?
      

  3.   

    感觉似乎是JSP内部对象的原因,放到函数里就不可用了?
      

  4.   

    out为内置对象,
    除了这个常用的比如
    request,response,session,application等等
    都不能再声明<%!  %>中使用.对于这种情况你最好再方法声明中返回一个字符串,然后再程序片中使用out输出这个字符串。
      

  5.   

    找到原因了,果然是方法内out被当作新变量来使用
      

  6.   

    并且似乎无法在方法内实例化out,最后只好用传参的方法解决了,jsp的限制还是太多了
      

  7.   

    <%!
    public void f()
    {
      out.println("abc");
    }
    %>加上感叹号在页面是定义变量
      

  8.   

    jsp限制确实多 写在bean里面吧 写起来也方便 
      

  9.   

    在Jsp里面写方法除非我疯了!