各位大佬..急啊..请教教我刚刚开始接触javabeans..认为和c++的函数或定义一个类..提供接口
..然后要用就包含那个'包' 就写了一个beans文件为Triangle.class 代码为
public class Triangle
{
double sideA;
public void setSideA(double a)
{
sideA=a;
}
public double getSideA()
{
return sideA;
}
};
再写了一个jsp文件为text.jsp 代码为
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="Triangle"%>
<html>
<body>
<FORM action="eee.jsp" Method="post">
<Input type=text name="sideA" value=0>
<Input type=submit value="sure">
<jsp:useBean id="triangle" class="Triangle" scope="page">
</jsp:useBean>
<jsp:setProperty name="triangle" property="*"/>
<jsp:getProperty name="triangle" property="sideA"/></FORM>
</body>
</html>
一调试就发现出错..信息为
description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPGenerated servlet error:
The import Triangle cannot be resolvedAn error occurred at line: 8 in the jsp file: /eee.jsp
Generated servlet error:
Triangle cannot be resolved to a typeAn error occurred at line: 8 in the jsp file: /eee.jsp
Generated servlet error:
Triangle cannot be resolved to a typeAn error occurred at line: 8 in the jsp file: /eee.jsp
Generated servlet error:
Triangle cannot be resolved to a typeAn error occurred at line: 11 in the jsp file: /eee.jsp
Generated servlet error:
Triangle cannot be resolved to a type
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)请问这是什么错..应该怎样修改..还有我这样理解javabeans的用法对吗?谢谢

解决方案 »

  1.   

    源文件:
    package T;
    public class Triangle
    {
    double sideA;
    public void setSideA(double a)
    {
    sideA=a;
    }
    public double getSideA()
    {
    return sideA;
    }
    }Class文件:
    Triangle.class
    位于 WEB-INF/classes/T/Triangle.classJSP文件:
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="T.Triangle"%>
    <html>
    <body>
    <FORM action="text.jsp" Method="post">
    <Input type=text name="sideA" value=0>
    <Input type=submit value="sure">
    <jsp:useBean id="triangle" class="Triangle" scope="page">
    <jsp:setProperty name="triangle" property="*"/>
    </jsp:useBean><jsp:getProperty name="triangle" property="sideA"/></FORM>
    </body>
    </html>
      

  2.   

    <jsp:useBean id="triangle" class="Triangle" scope="page">
    改成 ...class="T.Triangle" ...试试
      

  3.   

    <%@ page import="Triangle"%>
    这里有问题
    <%@ page import="T.Triangle"%>
      

  4.   

    把Triangle 改成T.Triangle
    导入是要完整的类路径
      

  5.   

    刚刚在我的机器上面测试了你的程序 
    <jsp:useBean id="triangle" class="Triangle" scope="page">
    改成
    <jsp:useBean id="triangle" class="T.Triangle" scope="page">就可以了java里面类的名称是由 包名+类名 确定的 ,
    所以在导入一个类的时候,要写犬类的名称.
      

  6.   

    JSP导入了包
    <%@ page import="T.Triangle"%>
    javabean可以不写全类名吧
      

  7.   

    把Triangle.class 放在WEB-INF/classess/ 下
      

  8.   

    好像如果你不把JAVABEAN放入一个包中
    而在JSP页面直接用这个CLASS的话,好像要出错吧
    因为我就出过这种错
    但相入一个包就OK了
      

  9.   

    <%@ page import="T.Triangle"%>导入的包在<% ... %>中call<jsp:useBean id="triangle" class="Triangle" scope="page">中的class要写全路径,不需要导入包