Einrichtung Mac OS X 10.6.8, Apache Tomcat 6.0.16, Java 1.6.0_29, Eclipse IDE Indigo.
Ich habe eine ähnliche Frage schon früher bei Wie man eine Java-API aus einem Web-App-Projekt ausführt und einfügt , aber die Einrichtung hat sich seitdem dahingehend geändert, dass ich nun den Java-Code im WebAp habe
Ich versuche, eine Java-Methode von einer JSP-Seite aufzurufen und die Ergebnisse zurückzugeben. Ich habe mir viele Beiträge angesehen, aber ich fürchte, mein Mangel an Erfahrung mit beiden Sprachen ist das Hauptproblem.
Ich habe einen JSP-WebAp, der eine XML-Datenbank durchsucht und Inhalt an den Benutzer zurückgibt. Ich wurde gebeten, zusätzlichen Java-Code zu integrieren, der vordefinierte Websites durchsucht und Inhalte zurückgibt.
Ich habe mit dem folgenden Code herum gespielt, aber ich denke, ich suche nach etwas anderem
%Vor%Kann mir jemand eine bessere Vorstellung davon geben, wonach ich suche?
Weißt du auch, ob ich irgendetwas anderes im WebAp bearbeiten muss, um die beiden Dateien zu verbinden? Die Klassendateien im WebINF-Ordner?
Jede Hilfe wird sehr geschätzt
Verteilen
%Vor%}
Zuerst der hässliche Weg (vielleicht weil php ?):
%Vor%Es wird jstl oder jsp getaggt sind el getaggt sind für die Ausgabe. Viel mehr Arbeit, aber besser um eine Größenordnung:
In Servlet:
%Vor% In page.jsp
:
Es gibt verschiedene Frameworks, die die Anzahl der Boilerplate reduzieren können (> Frühling -mvc ist ein einfaches Beispiel).
Nun, der einfachste Weg besteht darin, Ihre Klasse in die JSP zu importieren und sie über Scriptlets aufzurufen.
Um die Klasse einzuschließen:
%Vor%Beachten Sie, dass TheClassName keine Suffixe wie .java oder .class
enthältDann
%Vor% Hier schreiben Sie einfach alten Java-Code zwischen <%
und %>
-Tags.
Dies ist jedoch nicht der beste Weg, um aus der Sicht, wie Ihr Code organisiert ist, zu gehen. Nur die Präsentationslogik sollte in die Ansicht gehen. Es mit solchen Scriptlets zu vermasseln ist schlecht.
Wenn Sie Hilfe vom Aufruf einer Instanzmethode der Klasse benötigen, um etwas in Ihrer Sicht anzuzeigen, erstellen Sie einfach ein Tag, das den Methodenaufruf (und jede andere nicht viewbezogene Logik) ausführt und dann nur das zurückgibt, was angezeigt werden soll . Hier ist die offizielle Dokumentation zu diesem Thema.
Machen Sie eine beliebige JAVA -Klasse in Ihrem src-Ordner und importieren Sie diese Klasse auf JSP wie folgt.
%Vor%Nun nehmen wir an, Sie haben eine Funktion in der Klasse, die String zurückgibt, dann schreiben Sie dies in JSP als:
%Vor% Jetzt können Sie stringFromJava
überall in JSP verwenden. Sie können List auch auf die gleiche Weise erhalten.
Tags und Links java jsp tomcat invoke-command