错误如下:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /registry.jsp(10,0) According to TLD, tag jsp:setProperty must be empty, but is not
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:83)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:363)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:167)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1757)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1096)
org.apache.jasper.compiler.Parser.parseSetProperty(Parser.java:994)
org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1265)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1589)
org.apache.jasper.compiler.Parser.parse(Parser.java:172)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:252)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:152)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:138)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:246)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:454)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:440)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
tw.com.javaworld.CH11.HelloFilter.doFilter(Unknown Source)
note The full stack trace of the root cause is available in the Tomcat logs.

解决方案 »

  1.   

    1.
    ACTION="http://localhost:8080/JSPBook/registry.jsp"最好改为action="registry.jsp"
    2.
    <jsp:useBean id = "jdbc" scope="page" class="JDBC">
    <jsp:setProperty name="jdbc" property="username" value="$(param.name)"/>
    </jsp:useBean>
      

  2.   

    /registry.jsp(10,0) According to TLD, tag jsp:setProperty must be empty, but is not
    嘻嘻
      

  3.   

    <jsp:useBean id = "jdbc" scope="page" class="JDBC">
    <jsp:setProperty name="jdbc" property="username" value="$(param.name)"/>
    </jsp:useBean>
    另外,不要用http://localhost:8080/JSPBook/registry.jsp
    提交,用registry.jsp
      

  4.   

    JDBC.java:
    import java.sql.*;
    class JDBC {
    String username;
    public void setUsername(String username) {
                      this.username =username;
              }
              public String getUsername() {
                      return this.username;
              }
              public void save(){ 
     
    try {
    Connection c = null;
    Statement s = null;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://localhost:1433;database=student";
    c = DriverManager.getConnection(url,"xy","12345678");
    s = c.createStatement();
    String upd = "insert into test (name) values('"+username+"')";
    s.executeUpdate(upd);
    s.close();
    c.close();
    }
    catch(Exception e) {
    System.out.println(e);
    }
    }
    }
    在registry.jsp:
    <jsp:useBean id = "jdbc" scope="page" class="JDBC"/>
    <jsp:setProperty name="jdbc" property="username" value="$(param.name)"/>
    <%jdbc.save();%>
      

  5.   

    <jsp:setProperty>少了一个"/",改成<jsp:setProperty name="jdbc" property="username" value="$(param.name)"/>就可以了。我试过,修改后能正确运行了(屏蔽了数据库操作),否则编译通不过的
      

  6.   

    刚才registry.jsp掉了个“/”,现在加上去了又出新的错了,大家再帮帮我呀,谢谢。
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 9 in the jsp file: /registry.jspGenerated servlet error:
        [javac] Compiling 1 source fileD:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\JSPBook\org\apache\jsp\registry_jsp.java:49: cannot resolve symbol
    symbol  : class JDBC  
    location: class org.apache.jsp.registry_jsp
          JDBC jdbc = null;
          ^An error occurred at line: 9 in the jsp file: /registry.jspGenerated servlet error:
    D:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\JSPBook\org\apache\jsp\registry_jsp.java:51: cannot resolve symbol
    symbol  : class JDBC  
    location: class org.apache.jsp.registry_jsp
            jdbc = (JDBC) pageContext.getAttribute("jdbc", PageContext.PAGE_SCOPE);
                    ^An error occurred at line: 9 in the jsp file: /registry.jspGenerated servlet error:
    D:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\JSPBook\org\apache\jsp\registry_jsp.java:54: cannot resolve symbol
    symbol  : class JDBC  
    location: class org.apache.jsp.registry_jsp
                jdbc = (JDBC) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "JDBC");
                        ^
    3 errors
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:128)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:307)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:416)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:440)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    tw.com.javaworld.CH11.HelloFilter.doFilter(Unknown Source)
    note The full stack trace of the root cause is available in the Tomcat logs.
      

  7.   

    你把JDBC这个类放在哪里了??
      

  8.   

    to ningIII(小宁) :
    WEB-INF\classes下面
      

  9.   

    <jsp:useBean id = "jdbc" scope="page" class="JDBC"/>
    应该改成
    <jsp:useBean id = jdbc scope="page" class="JDBC.java"/>
      

  10.   

    我按tutor666(小虫)的方法改了,但是还是报一样的错,大家在帮我看看吧!
      

  11.   

    1.JDBC.java改为:
    package db;
    import java.sql.*;
    class JDBC {
    String username;
    public void setUsername(String username) {
    try {
    Connection c = null;
    Statement s = null;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://localhost:1433;database=student";
    c = DriverManager.getConnection(url,"xy","12345678");
    s = c.createStatement();
    String upd = "insert into test (name) values('"+username+"')";
    s.executeUpdate(upd);
    s.close();
    c.close();
    }
    catch(Exception e) {
    System.out.println(e);
    }
    }
    }2.
    registry.jsp改为:
    <%@ page import="java.sql.*" %>
    <%@ page contentType="text/html;charset=GB2312" %>
    <html>
    <head>
    <title>registry.jsp
    </title>
    </head>
    <body>
    <jsp:useBean id = "jdbc" scope="page" class="db.JDBC">
    <jsp:setProperty name="jdbc" property="username" value="$(param.name)"/>
    </body>
    </html>
      

  12.   

    你把JDBC.java 必须声明为public类型的,而你现在的为friendly的当然不能使用了,你要使用bean就必须要遵循他的规范,其中有一条明确规定就是bean必须是公有的,而且必须要有默认的构造函数,也就是没有参数的构造函数,如果没有写构造函数系统会自己给你自动生成一个
      

  13.   

    最好是写两个方法,一个是setUserName(),getUserName(),数据库另外写一个conninit(),不然会被屏避掉.
      

  14.   

    <jsp:setProperty name="jdbc" property="username" value="$(param.name)">
    最后少了个“/“!!!
    哈哈!!
      

  15.   

    我也是刚学jsp 的,只能帮你顶了。呵呵!
      

  16.   

    可能是tomacat的问题,我也曾经遇到过,之后我用tomcat3.3版本就没有问题了
      

  17.   

    请大家一并来这张帖看看,http://community.csdn.net/Expert/topic/3465/3465554.xml?temp=.9394953
    谢谢了