Вопрос

Я работаю с JSP usebean, когда я пытаюсь использовать bean-компонент в JSP, он выдает исключение: "Он не может найти класс".Но я полагаю, что я следовал правильной структуре и включил все необходимое.Пожалуйста, просмотрите код и дайте мне знать, в чем может быть проблема.

//init.jsp
--------
<%@ page import="com.wipro.upload.extract.EmployeeDetailsExtract" %>
<%@ page import="com.wipro.upload.extract.ColumnDetailsExtract" %>
<%@ page import="com.wipro.upload.extract.dto.Employee" %>
<%@ page import="com.wipro.upload.bean.Data" %>
<jsp:useBean id="detailsbean" class="com.wipro.upload.bean.Data" scope="session" />
<jsp:setProperty name="detailsbean" property="*" />
<%
 detailsbean.setValues(new EmployeeDetailsExtract("c:\\new.xls").employeeListExtracter());
 List list=detailsbean.getValues();

 Iterator itr=list.iterator();
 while(itr.hasNext())
 {
  Employee emp=(Employee)itr.next();
  out.println(emp.employeeName);
 }
%>

// Data.java
package com.wipro.upload.bean;
import java.util.*;
public class Data
{
 private List column;
 private List values;
 public Data()
 {
 }
 public void setColumn(List column)
 {
  this.column=column;
 }

 public List getColumn()
 {
  return column;
 }
 public void setValues(List values)
 {
  this.values=values;
 }
 public List getValues(List values)
 {
  return values;
 }
}

Ошибка, возникающая при попытке выполнить приведенный выше код:

org.apache.jasper.JasperException: /init.jsp(6,0) The value for the useBean class attribute com.wipro.upload.bean.Data is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1272)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3426)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Это было полезно?

Решение

Вы не можете использовать * с List.Механизм jsp пытается преобразовать значения запроса (которые являются строками) в тип целевого свойства.Проверь это для получения информации о <jsp:setProperty />.В вашем bean-компоненте должны быть только примитивы (и их оболочки) + String — int (Integer), long (Long) и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top