<%@ page contentType="text/html;charset=BIG5"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>商品分類查詢結果</title>
</head>
<body>
<center>
<jsp:useBean id="category" class="ltk.Category" scope="page">
<jsp:setProperty name="category" property="*"/>
</jsp:useBean>
<%
java.util.ArrayList categorys = categoryBean.queryCategory(category);
if(null == categorys || categorys.isEmpty())
{
out.print("沒有找到符合條件的商品分類信息");
}
else
{
                  out.print("success");
          }</center>
</body>
</html>javaBean如下:
放在C:\Program Files\Apache Group\Tomcat 4.1\webapps\ROOT\WEB-INF\classes\ltk
第一個:
package ltk;
public class Category
{
private int categoryid;
private String name; public void setCategoryID( int categoryid)
{
this.categoryid = categoryid;
}
public int getCategoryID()
{
return this.categoryid;
}
public void setName( String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}}  //此class測試沒有問題
另一個:
package ltk;
import java.sql.*;
import java.util.*;public class CategoryBean
{
public ArrayList queryCategory(Category category)
{
ArrayList lst = new ArrayList();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try
{
conn = ch08_DatabaseBean.getConnection();
st = conn.createStatement(); String sql = "select categoryid,name from category ";
if(category != null && ! StringUtil.isEmptyString(category.getName()))
sql = sql + " where name like '%" +category.getName() +"%'";
sql = sql + " order by name asc";

rs = st.executeQuery(sql); while(rs.next())
{
Category c = new Category();
c.setCategoryID(rs.getInt(1));
c.setName(rs.getString(2));
lst.add(c);
}
}
catch (SQLException ex)
{
ex.printStackTrace(System.err);
}
finally
{
ch08_DatabaseBean.close(rs,st,conn);
}
return lst;
}
}      //此class測試沒有問題但是問題出現在jsp運行時出現錯誤:
The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: ltk.CategoryBean.queryCategory(Lltk/Category;)Ljava/util/ArrayList;請教高手指點迷津!

解决方案 »

  1.   

    public void setCategoryID( int categoryid)
    {
    this.categoryid = categoryid;
    }
    CategoryBean 要按照JavaBean的规范来写set/get方法 格式为setCategoryid
    getCategoryid
      

  2.   

    categorys = (ArrayList)categoryBean.queryCategory(category);这么取试试吧
      

  3.   

    以上的方法經過測試仍然出現相同的錯誤,但是我在CategoryBean中寫了個main(),編譯後,用WEB-INF\classes>java ltk.CategoryBean測試卻成功,但在jsp中就會出現錯誤,不知道是什麼原因。
    錯誤提示:
    The server encountered an internal error () that prevented it from fulfilling this request.
    exception 
    javax.servlet.ServletException: ltk.CategoryBean.queryCategory(Lltk/Category;)Ljava/util/ArrayList;
    java.lang.NoSuchMethodError: ltk.CategoryBean.queryCategory(Lltk/Category;)Ljava/util/ArrayList;修改的程序如下:
    package ltk;
    import java.sql.*;
    import java.util.*;public class CategoryBean
    {
       public static void main(String [] args)
    {
    Category category = new Category();
    //category.setCategoryid(8);
    category.setName("abc"); CategoryBean categoryBean = new CategoryBean();
    ArrayList categorys = categoryBean.queryCategory(category);
    for(int i=0;i<categorys.size();i++)
    {
    Category c = (Category)(categorys.get(i));
    i++;
    System.out.println(i+"  "+c.getName());
    } }
             public ArrayList queryCategory(Category category)
             {......}
    }
      

  4.   

    問題解決,重新啟動了下TOMCAT就可以了,暈