2009-06-01 19 views
2

2つのJSPとJavaBeanが動作しません。私はTomcat 6.0を使用しています。最初のJSPはCに位置し、GetName.jspある:\ Tomcatの\ Webアプリケーション\ APP1 GetName.jsp \:JavaBeanのuseBeanクラス属性の値class.UserDataが無効です '

<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> 

第JSPはCに位置NextPage.jspある:\ Tomcatの\ Webアプリケーション\ APP1 \ NEXTPAGE .jspファイル:私も持っている

package classes; 

import java.io.Serializable; 

public class UserData implements Serializable { 
    String username; 
    String email; 
    int age; 

    public UserData() { 
    } 

    public void setUsername(String value) 
    { 
     username = value; 
    } 

    public void setEmail(String value) 
    { 
     email = value; 
    } 

    public void setAge(int value) 
    { 
     age = value; 
    } 

    public String getUsername() { return username; } 

    public String getEmail() { return email; } 

    public int getAge() { return age; } 
} 

<jsp:useBean id="user" class="classes.UserData" scope="session"/> 
<HTML> 
<BODY> 
You entered<BR> 
Name: <jsp:getProperty name="user" property="username" /><BR> 
Email: <jsp:getProperty name="user" property="email" /><BR> 
Age: <jsp:getProperty name="user" property="age" /><BR> 
</BODY> 
</HTML> 

私のJavaBean、UserDataを、correctyをコンパイルし、クラスファイルはCに位置しています:\ Tomcatの\ webappsに\ APP1 \ WEB-INF \クラスC:\ Tomcat \ webapps \ app1 \ WEB-INにある私のweb.xmlファイルの次の部分F:

<?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> 

私の検索では、クラスパスと関係があります。私のクラスパスは現在C:\ Tomcat \ lib \ servlet-api.jarです。

私はGetName.jspに情報を入力し、ボタンをクリックすると、Tomcatは私にNextPage.jspために、次を与える:

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) 

私は右のすべてをやっている誓うことができますが、どうやら私はない。誰かが私の髪を裂く前に何が間違っているのか教えてください。前もって感謝します。

答えて

2

NextPage.jspファイルでBeanのプロパティを設定する必要があります。

このようなuseBeanステートメントの後に次の行を追加します。

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

に入りましたついにすべてが機能しました。ありがとう、ウィル –

0

問題は、参照クラスがパッケージとして表示されるようです。そうではありません、それは戦争のクラスのルートディレクトリです。

あなたのクラスからパッケージ行を削除し、あなたのbeanをclass = "UserData"として参照し、何が起こるかを見てください。

+0

私はこれを試しました。 Tomcatが私に言っていることがここにあります。 org.apache.jasper.JasperException:JSPのクラスをコンパイルできません: jspファイル:/ NextPageの行:1でエラーが発生しました。JSP UserDataのタイプ 1に解決することができないます。 2: 3: 4:この追加

1

UserData.classファイルが間違ったディレクトリにあるという問題は、UserData.classが実際にwebapps/app1/WEB-INF/classes/classes/UserData.classにあることを意味します。

1

javaファイル「UserData.java」をコンパイルした後、あなたが1つのクラスファイルを取得します= UserData.classは、クラスの下に、ユーザーに位置していることを「UserData.class」.Make確認してください。 ROOTの\ WEB-INF \クラス\

.. \ Tomcat6.0 \ webappsにしなければなりませんBE-ファイルUserData.javaとUserData.classの場所すなわち \ UserData.javaと .. \ Tomcat6.0 \ webapps \ ROOT \ WEB-INF \ classes \ UserData.class

WEB-INFに「classes」がない場合、これらのファイルを保存するために「classes」という名前の新しいフォルダを作成できます。変更を表示するにはtomcatを再起動します。

関連する問題