Bean的数组列表.如何在jsp中使用EL访问bean的属性?抛出NotFoundError异常



我有一个employeebean resultEmployeeList在请求范围内设置的数组列表。我不知道我的做法是否正确。但是这里是jsp中使用的jstl代码。

<c:forEach var="element" items="${resultEmployeeList} ">
            <tr>
                <td>
                ${element.empId}
                </td>
                <td> ${element.empname}</td>

            </tr>
        </c:forEach>

当我试图访问employeebean的empId属性时,它显示了这个错误

javax.el.PropertyNotFoundException: Property 'empid' not found on type java.lang.String

这是employeebean

public class EmployeeBean {
private int empId;
private String empname;
private boolean exceptionExist;
public EmployeeBean() {
}
public int getEmpId() {
    return empId;
}
public void setEmpId(int empId) {
    this.empId = empId;
}
public EmployeeBean(int empId, String empname) {
    this.empId = empId;
    this.empname = empname;
}
public String getEmpname() {
    return empname;
}
public void setEmpname(String empname) {
    this.empname = empname;
}
public boolean exceptionExist(){
return true;
}

}

这是我把resultEmployeeList

public boolean getEmployeesIn(ArrayList<Integer> empids,HttpServletRequest request) {
    ArrayList<EmployeeBean> employeeList=new ArrayList<EmployeeBean>();
    Iterator empidIterator=empids.iterator();
    while(empidIterator.hasNext()){
        employeeList.add(eObject.getEmployee((Integer)empidIterator.next()));
    }
    if(employeeList.isEmpty())
        return false;
    else{
    request.setAttribute("resultEmployeeList", employeeList);
    }
    return true;

其中eObject.getEmployee(..)调用这个方法。

 public EmployeeBean getEmployee(int empId) {
    EmployeeBean eb = new EmployeeBean();
    try {
        String query = "select * from empschema.employee where empid=?";
        ps = con.prepareStatement(query);
        ps.setInt(1, empId);
        ResultSet rs = ps.executeQuery();
        if (!rs.next()) {
            eb=null;
            return eb;
        } else {
                eb.setEmpId(rs.getInt(1));
                eb.setEmpname(rs.getString(2));
        }
    } catch (SQLException ex) {
        Logger.getLogger(EmployeeDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return eb;
}

如果您按原样粘贴了代码,那么在items="${resultEmployeeList} "${resultEmployeeList}之后会有一个额外的空间。这可能导致变量element被视为字符串而不是实际类型。

最新更新