请各位大侠看看我下面的代码,为什么在执行到try的时候就出现标题中的错误package db;
import java.sql.*;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.util.*;
import java.math.*;
public class db extends TagSupport
{
 private String table;
public int doStartTag() throws JspTagException
 {  return(SKIP_BODY);
}
public int doEndTag() 
{
    try
    {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://202.112.14.112:1433;DatabaseName=dongshi","sa","ds");
Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select * from"+table);
while(rs.next())
{
System.out.print(rs.getString("uid"));
    System.out.print(rs.getString("pwd"));
    System.out.print(rs.getString("name"));
    System.out.print(rs.getString("age"));
}
    //pageContext.getOut().write(table);
    }
    catch
    {
     return (EVAL_PAGE);  }
 finally
 {
  
 }
 return (SKIP_BODY);
}
 public void settable(String table)
 {

 this.table=table;
 }
public String gettable(String table){
return(table);
}
}

解决方案 »

  1.   

    ResultSet rs=stmt.executeQuery("select * from"+table);
    =========================================================
    你的table有值吗?是什么?没看到给table赋值啊
      

  2.   

    楼主的是自定义标签吧,我不太熟悉,我感觉太麻烦,我一般写的是标签文件,因为不用写标签库描述,我刚刚试了下楼主的代码,扩号好像有问题,代码应该没问题.package test;import javax.servlet.Servlet.*;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    import java.util.*;
    import java.math.*;
    public class test extends TagSupport {
        private String table = "emPop";
        public int doStartTag() throws JspTagException {        return (SKIP_BODY);
        }    public int doEndTag() {
            try {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").
                        newInstance();
                Connection conn = DriverManager.getConnection(
                        "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=VODDATA",
                        "sa", "");
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("select * from" + table);
                while (rs.next()) {
                    System.out.print(rs.getString("emPop_id"));
                }
                //pageContext.getOut().write(table);
            } catch (Exception ex) {
                return (EVAL_PAGE);        }
            return (SKIP_BODY);
        }}
    编译通过了的.
      

  3.   

    在WEB-INF下建立tags目录,然后在下面建*.tag的文件,内容为
    <%@ tag body-content="scriptless" %>
    <%@ attribute name="dbName" rtexprvalue="true" required="true"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLDServerDRIVER" url="jdbc:microsoft:sqlserver://locahost:1433;DataBaseName=VODDATA" user="sa" password="" var="con"/>
    <sql:query var="ds" dataSource="${con}">select * from ?
    <sql:param value="${dbName}">
    </sql:param>
    </sql:query>
    <c:forEach var="row" varStatus="${ds.rowsByIndex}">
    <c:forEach var="column" items="${row}">
      <c:out value="column" /></c:forEach>
    </c:forEach>不用描述,是不是要简单些?这个我没试,只是随手写的,是这个意思就行了.