JavaBean';useBean类属性classes.UserData的值无效';

JavaBean';useBean类属性classes.UserData的值无效';,java,attributes,javabeans,Java,Attributes,Javabeans,我有两个JSP和一个JavaBean不能工作。我正在使用Tomcat6.0。第一个JSP是GetName.JSP,位于C:\Tomcat\webapps\app1\GetName.JSP: <HTML> <BODY> <FORM METHOD=POST ACTION="NextPage.jsp"> What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> What's y

我有两个JSP和一个JavaBean不能工作。我正在使用Tomcat6.0。第一个JSP是GetName.JSP,位于C:\Tomcat\webapps\app1\GetName.JSP:

<HTML>
<BODY>
<FORM METHOD=POST ACTION="NextPage.jsp">
What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR>
What's your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
What's your age? <INPUT TYPE=TEXT NAME=age SIZE=4>
<P><INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
我的web.xml文件中还有以下内容,位于C:\Tomcat\webapps\app1\web-INF:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
</web-app>

我可以发誓我做的每件事都是对的,但显然我不是。在我把头发都扯下来之前,谁能告诉我出了什么事?提前感谢。

问题似乎是将类作为包引用。它不是,它是战争中类的根目录


从类中删除包行,并将bean称为class=“UserData”,然后查看发生了什么情况。

问题是您的
UserData.class
文件位于错误的目录中,这意味着
UserData.class
实际上应该位于
webapps/app1/WEB-INF/classes/classes/UserData.class
您需要在NextPage.jsp文件中设置bean属性

在useBean语句后面添加以下行,如下所示

<jsp:useBean id="user" class="UserData" scope="session"/>
<jsp:setProperty name="user" property="*" /> 

编译完java文件“UserData.java”后,您将得到一个类文件=“UserData.class”。确保UserData.class位于类下的User中。 ie文件UserData.java和UserData.class的位置必须为-

..\Tomcat6.0\webapps\ROOT\WEB-INF\classes\UserData.java和 ..\Tomcat6.0\webapps\ROOT\WEB-INF\classes\UserData.class


如果WEB-INF中没有“classes”,您可以创建一个名为“classes”的新文件夹来存储这些文件。重新启动tomcat以查看更改。

我已经尝试过了。这是Tomcat告诉我的。org.apache.jasper.JasperException:无法为JSP编译类:JSP文件:/NextPage.JSP UserData的第1行出现错误,无法解析为类型1:2:3:4:您输入的
添加此项最终使一切正常。谢谢你,威尔先生。
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
</web-app>
org.apache.jasper.JasperException: /NextPage.jsp(1,1) The value for the useBean class attribute classes.UserData 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:1203)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1160)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2393)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2399)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3365)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
    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)
<jsp:useBean id="user" class="UserData" scope="session"/>
<jsp:setProperty name="user" property="*" />