Java Klassen in JSP einbinden



  • hallo,

    ich versuche eine einer hava klasse in jsp zu verwenden

    als Entwicklungsumgebun benutze ich die NetBeans

    das Struktur meinw Web App

    myApp/WEB-INF/classes

    die klasse befindet sich in WEB-INF\classes

    // Java class

    package APPMessages;

    public class MessageCreator {

    public MessageCreator() {}

    public String getMessage()
    {
    return "The Application is loaded...";
    }
    //-----------------------------------
    }

    // index.jsp
    ...
    <%@page contentType="text/html" import="AppMessages.*"%>

    <%
    MessageCreator messageObj = new MessageCreator();
    for(int i=0; i< 10; i++){
    %>
    <H1><%= messageObj.getMessage()%></H1>
    <%
    }
    %>
    ....

    aber ich bekomme immer folgende Fehler

    symbol : class MessageCreator
    location: class org.apache.jsp.index$jsp
    MessageCreator messageObj = new MessageCreator();
    ^
    wo liegt den Fehler ???

    wie soll die Verzeichnis Struktur wenn ich

    <%-- <jsp:useBean id="messageObj" scope="session"

    class="Messages.MessageCreator"/> -->

    danke



  • Hi,

    dein Packagename ist APPMessages. Mach in WEB-INF/classes das Verzeichnis APPMessages auf, und kopier die kompilierte Klasse da hinein!

    In der JSP-Datei holst du Sie dann per
    <jsp:useBean id="messageObject" scope="page" class="APPMessages.MessageCreator" />

    scope und Id kannst du ja noch ändern.
    In den JSPs musst du die Klasse jetzt über die Id ansprechen. Der Konstruktor ist schon aufgerufen worden. Du kannst dir das Instanzanlegen also sparen, und gleich auf die Methoden zugreifen. Also etwa

    messageObject.dummymethod("Hallo Welt");

    Arbeite an deinem Ausdruck 😉



  • wie sieht aus wenn der Konstrukter der Klasse MessageCeator

    parameter bekommt ??

    wie kann ich die id zuweisen



  • Beschäftige dich mal mit Beans und deren Eigenschaften, für jsp insbesondere
    mit <jsp:setProperty ... />. Musst mal Googlen!



  • Achso wenn du unbedingt die Tour deines ersten Beispiels gehen willst musst du:

    APPMessages.MessageCreator messageObject = new APPMessages.MessageCreator();

    schreiben, also mit Packagenamen.
    Dann wirds aber schnell unübersichtlich!


Anmelden zum Antworten