2009-06-01 8 views
2

두 개의 JSP와 JavaBean이 작동하지 않습니다. 나는 Tomcat 6.0을 사용하고있다. 제 JSP는 C에 위치한 GetName.jsp이다 : \ 톰캣 \ 웹 응용 \ 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이다 : \ 톰캣 \ 웹 응용 \ APP1 \ NextPage .jsp로 :

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

내 자바 빈즈, UserData를가 올바르게 기능을 컴파일하고 클래스 파일는 C : \ 톰캣 \ webapps에 \ APP1 WEB-INF \ 클래스 \ : 나는 또한이

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

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> 

내 Google 검색은 클래스 경로와 관련이 있음을 보여줍니다. 내 클래스 경로는 현재 C : \ Tomcat \ lib \ servlet-api.jar입니다. 내가 GetName.jsp에 정보를 입력하고 버튼을 클릭

는 톰캣은 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

자바 파일 "UserData.java"를 컴파일 한 후, 하나 개의 클래스 파일을 얻을 것이다 = UserData.class 클래스에서 사용자에 있는지 "UserData.class".Make 확인합니다. ROOT의 \ WEB-INF \ 클래스 \

.. \ Tomcat6.0 \ 웹 어플리케이션을 BE-해야하는 파일 UserData.java 및 UserData.class의 위치 즉, \ UserData.java 및 .. \ Tomcat6.0 \ webapps \ ROOT \ WEB-INF \ classes \ UserData.class

WEB-INF에 "classes"가없는 경우 "classes"라는 새 폴더를 만들어이 파일을 저장할 수 있습니다. 변경 사항을 보려면 tomcat을 다시 시작하십시오. .