求解!调用JSP语句使用JAVABean提示"[UseBean]有一个无效属性:[Class]"

HTTP状态 500 - 内部服务器错误
类型 异常报告

消息 /jsp/TestJavaBean.jsp (行.: [6], 列: [0]) [UseBean]有一个无效属性:[Class]

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

org.apache.jasper.JasperException: /jsp/TestJavaBean.jsp (行.: [6], 列: [0]) [UseBean]有一个无效属性:[Class]
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:292)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:98)
	org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:207)
	org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:634)
	org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1188)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
	org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2443)
	org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2449)
	org.apache.jasper.compiler.Node$Root.accept(Node.java:472)
	org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
	org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1857)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:224)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看

Apache Tomcat/10.0.4

调用JSP语句使用JAVABean提示--"[UseBean]有一个无效属性:[Class]"

存放bean.Dog.class文件位于/WEB-INF/classes/bean目录下.

使用class文件内容如下:

package bean;
import java.io.*;
public class Dog implements Serializable{
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Dog() {
		super();		
	}
	public Dog(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}	
}

JSP文件内容如下:

<%@ page errorPage = "ErrorPage.jsp" %>
<%@ page language = "java" pageEncoding = "utf-8" %>
<%@ page import = "bean.*" %>

<jsp:useBean id="dog" Class="bean.Dog">
</jsp:useBean>
<jsp:setProperty name = "dog" property = "name" value = "dahuang"/>
<jsp:getProperty name = "dog" property = "name"/>

<%--  在注释掉以上4句jsp语法后,以下面JAVA语法调用javabean后可以显示结果:dahuang  --%>
<%
	Dog dog  = new Dog();
	dog.setName("dahuang");
	out.println(dog.getName());
%>

 

userBean的结尾是不是直接/就行了,就像这样<jsp:useBean id="dog" Class="bean.Dog" />。不是

<jsp:useBean id="dog" Class="bean.Dog"></jsp:useBean>

和你一样的问题,楼主解决了吗?

把Class改成class试试