Java Bean in JSP

Toastbrot666

Grünschnabel
Hallo,

ich melde mich mal wieder hier, da ichs net mehr verstehe.

Folgende Sache. ich habe mir mal JSP angeschaut und würde des jetzt gerne verwenden. Gleichzeitig habe ich eine Bean gebastelt und würde die gerne verwenden.

Im Einsatz habe ich Tomcat 5.5 und Java SDK 6

Vielleicht fällt jemand mein Fehler auf.

JSP:
Code:
<jsp:useBean id="helloworldbean" type="bib.helloworld" />
<jsp:getProperty name="helloworldbean" property="helloworld" />

Java Bean:
Code:
package bib;
public class helloworld
{
  String str_helloworld ="helloworldd";
  public helloworld(){};
  public String getHelloworld()
  {
    return str_helloworldd;
  } 
}

Folgende fehlermeldung bekomme ich immer wieder:

type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.

exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 1 in the jsp file: /jsp/beanhelloworld.jspGenerated servlet error:D:\root\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\jsp\beanhelloworld_jsp.java:42: package bib does not exist bib.helloworld helloworldbean = null; ^An error occurred at line: 1 in the jsp file: /jsp/beanhelloworld.jspGenerated servlet error:D:\root\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\jsp\beanhelloworld_jsp.java:44: package bib does not exist helloworldbean = (bib.helloworld) _jspx_page_context.getAttribute("helloworldbean", PageContext.PAGE_SCOPE); ^2 errors org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332) org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412) org.apache.jasper.compiler.Compiler.compile(Compiler.java:472) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

das jsp liegt in D:\Tomcat\webapps\ROOT\jsp\

Die Bean liegt in: D:\Tomcat\webapps\ROOT\web-inf\classes\bib

Was ist falsch?

Ich krieg den Fehler nicht.
 
hi Toastbrot,
hast du die JSP in der WEB.xml beschrieben? eventuell liegt da der hund begraben ...

ansonsten schau dir mal die erste Zeile der JSP an ... anstatt "type" solltest du da "class" hinschreiben und dann die klasse angeben mit der Bean.

anderer Hinweis: Deine Variable heist str_helloworld du hast beim return aber str_helloworldd stehen. Da muss ein "d" weg am ende :)

das ist erstmal das was mir auf Anhieb auffällt.

grüße
Lucien
 
hast du die JSP in der WEB.xml beschrieben?

was muss ich denn da genau beschreiben?

ansonsten schau dir mal die erste Zeile der JSP an ... anstatt "type" solltest du da "class" hinschreiben und dann die klasse angeben mit der Bean.

Ich hatte es mit class probiert, aber damit lief es ganz und gar nicht. Hab ich immer ne Class not found Fehlermeldung bekommen. Durch das Type konnte ich das abfangen.

Was muss ich denn für einen zusatz einbauen, damit class funktioniert?

Danke und Gruß

Toastbrot
 
also die WEB.xml sieht in etwas so aus wenn man eine JSP dort beschreibt

Code:
<web-app>
                <servlet>
                        <servlet-name>helloworld</servlet-name>
                        <jsp-file>helloworld.jsp</jsp/file>
                </servlet>
                <servlet-mapping>
                        <servlet-name>helloworld</servlet-name>
                        <url-pattern>/hello.html</url-pattern>
                </servlet-mapping>
          </web-app>

<servlet> wird benutzt, um eine Servlet-Klasse oder eine JSP-Seite zu beschreiben.
<servlet-mapping> wird zum einen dazu benutzt, dem benutzer zu vrbergen, dass er eine JSP seite aufruft (is jetzt erstmal noch spielerei)
und zum anderen wir die Seite bei <url-pattern> dann mit http://localhost:port/deineverzeichnisse.../hello.html aufgerufen
 
um class zu verweden brauchst du keinen Zusatz zumindest nicht nach meinem Wissen.

ich benutzte es beispielsweise so:

Code:
<html><body>
<jsp:useBean id="userInfo" class="beans.UserBean">
    <jsp:setProperty name="userInfo" property="*"/>
</jsp:useBean

achso den tag jsp:useBean erst nach der setProperts schließen ... das könnte auch noch eine Ursache sein.
der Tag setProperty ist allerdings nur dazu da Benutzereingaben in einer Bean zu speichern ... für dein Hello world also erstmal irrelevant denke ich
 
Zurück