这里:<jsp:useBean id="circle" class="Circle" scope="page" /> 改成:<jsp:useBean id="circle" class="jspdemo.Circle" scope="page" />

解决方案 »

  1.   

    刚刚试过,搞定了,多谢kenny1979 !
    给分!结贴之前可否讨论一下原因?
      

  2.   

    本来<jsp:setProperty>都好用了,可<jsp:getProperty>为什么就不好用呢?
      

  3.   

    没有指定包路径,无论setProperty还是getProperty都不可能成功
      

  4.   

    有这条语句坐镇:<%@page import="jspdemo.Circle"%>
    还用再指定一次包名么?
    setProperty确实是好用的。怀疑是tomcat5的bug.并:该给帖子加20分。
      

  5.   

    kenny1979 以及各位大虾,我准备明晚结贴,多谢各位!
      

  6.   

    不好使可以不用的,可以像在java里用类的方法用bean啊
    <%
    <jsp:useBean id="circle" class="Circle" scope="page" />
    </jsp:useBean>
    circle.setRadius(int radius);
    circle.getRadius();
    circle.circleArea();
    %>
    我感觉这样更灵活些
      

  7.   

    呵呵 还要讨论原因? 请问楼主 一开始 你怎么知道 <jsp:setProperty> 是好用的? 两个都不可能好用! 原因嘛,要问编译器了!其实也不用太在意这些,当成基本的语法用就是了。
      

  8.   

    回kenny1979: 2003-12-30 09:42:00贴把<jsp:getProperty>一行删掉,保留<jsp:setProperty>那一行,执行无误。
    但是把<jsp:getProperty>一行加上之后,就出现该错误。
    如此可判断<jsp:setProperty>好用。其实也不是太在意,只是觉得有些奇怪,所以才提议再讨论一下。难道在jsp页面的开头引用一次包之后(使用<%@page import="jspdemo.Circle"%>语句),
    使用类的时候,还要再指定一次包名么?
      

  9.   

    stonefeng(浩) : 你怎么知道“把<jsp:getProperty>一行删掉,保留<jsp:setProperty>那一行,执行无误。” 你查看过属性radius的值吗? jsp在执行前是先要编译 后执行的,你那样只是说明 编译通过了 ,但不保证运行正确!
      

  10.   

    radius的初始值为1,是在Circle类的构造函数中初始化的。
    <jsp:setProperty>一行将radius的值设置为2,然后使用<%=circle.circleArea()%>将圆的面积输出,结果是Math.PI * 2 * 2 = 12.5663...若将<jsp:setProperty>一行去掉,则结果为Math.PI * 1 * 1 = 3.1415926...如此可以证明<jsp:setProperty>一行起作用了。
      

  11.   

    我想很有可能是tomcat实现时的bug,再讨论没有太大意义,反正问题已经解决,就此结贴。