最近在学习《jsp应用开发详解》(飞思)其中有一点问题不明白。想高手帮忙一下。
其中有viewAllEmployee.jsp如下:
<jsp:useBean id="employeeBean" class="com.jspdev.ch17.EmployeeBean" scope="session"/>
<c:set var="employees" value="${employeeBean.employees}"/>
................
<logic:iterate id="emps" name="employees" >
  <tr bgcolor="#FFFF88">
  <td>
          <bean:write name="emps" property="id" /></td>
         <td>
          <bean:write name="emps" property="name" /></td>
           <td>
          <bean:write name="emps" property="age" /></td>
           <td>
          <bean:write name="emps" property="salary" /></td>
          <td>
          <bean:write name="emps" property="department" /></td>
        </tr>
        </logic:iterate>
再来看一下EmployeeBean如:(只是一些执行SQL语句的函数,根本没有employees属性)
package com.jspdev.ch17;
import com.jspdev.util.*;
import java.sql.*;
import javax.sql.*;
import java.io.*;
import java.util.*;
public class EmployeeBean
{
private   Connection conn ;
public EmployeeBean()throws Exception
{
this.conn=DatabaseConn.getConnection();
}
public void addEmployee(Employee employee)throws Exception
{
     this.executeHelper("insert into employee values('"+employee.getId()+"','"+employee.getName()+"',"+employee.getSalary()+",'"+employee.getDepartment()+"',"+employee.getAge()+")");
}
public Collection getEmployees()throws Exception
{
return this.getEmployeeHelper("select * from Employee");
 }
  
 public Collection getNoDeptEmployees()throws Exception
{
return this.getEmployeeHelper("select * from Employee where  department='temp'");
 }
 
 public Collection getDepartmentDemployees(String deptId)throws Exception
 {
  return this.getEmployeeHelper("select * from employee where department='"+deptId+"'");
 }
 public void deleteEmployeeFromDept(String employId,String deptId)throws Exception
 {
  try
  {
  this.executeHelper("update employee set department='temp' where id='"+employId+"'");
  }
  catch(Exception e)
  {
  e.printStackTrace();
  throw e;
  }
 }
 public void resetEmploy(String employId,String deptId)throws Exception
 {
  try
  {
this.executeHelper("update employee set department='"+deptId+"' where id='"+employId+"'");
  }
  catch(Exception e)
  {
  e.printStackTrace();
  throw e;
  }
 
 }
 
  private Collection getEmployeeHelper(String sql)throws Exception
  {
    Statement stmt=conn.createStatement();
     ResultSet rst=stmt.executeQuery(sql);
     Collection ret=new ArrayList();
     while(rst.next())
     {
      Employee temp=new Employee();
      temp.setId(rst.getString("id"));
      temp.setName(rst.getString("name"));
      temp.setAge(rst.getInt("age"));
      temp.setSalary(rst.getFloat("salary"));
      temp.setDepartment(rst.getString("department"));
        ret.add(temp);
     }
     return ret;
  }
  
  private void executeHelper(String sql)throws Exception
  {
    Statement stmt=conn.createStatement();
 stmt.executeUpdate(sql);
  }
}
我的机上是通不过的。
我想问一下高手,这样写对的吗?而且这样的情况出现好多次。

解决方案 »

  1.   

    错误是:
    org.apache.jasper.JasperException: Cannot find bean departments in any scope
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    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)javax.servlet.ServletException: Cannot find bean departments in any scope
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.departmentManage_jsp._jspService(departmentManage_jsp.java:216)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    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)
      

  2.   

    java文件打包编译通过了吗?
    TOMCAT配置好了没?
    要是你们打包便宜代码.
    生成的.class文件要放到对应class的目录中.