Ausnahme in JSP useBean
Frage
Ich habe mit JSP usebean
arbeiten, wenn ich zu verwenden Bohne in JSP bin versucht, sein eine Ausnahme zu werfen, dass „ Es ist nicht die Klasse findet “. Aber ich habe die richtige Struktur gefolgt, nehme ich an, und enthalten alles, was erforderlich ist. Bitte gehen Sie durch den Code und lassen Sie mich wissen, was das Problem sein könnte.
//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;
}
}
Der Fehler auftritt beim Versuch, den obigen Code auszuführen ist,
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)
Lösung
Sie können nicht *
mit List
verwenden. Der jsp Motor versucht, Wandlungs-Anforderungswerte (der String) auf die Art der Zieleigenschaft.
Überprüfen Sie diese für Informationen über <jsp:setProperty />
. Sie müssen nur Primitiven (und ihre Wrapper) + String in Ihrem Bean haben -. Int (Integer), lang (Long), etc