Aufrufen einer Java-Methode in JSP

8

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%

}

    
Deepend 05.03.2012, 12:10
quelle

4 Antworten

12

Zuerst der hässliche Weg (vielleicht weil ?):

%Vor%

Es wird oder getaggt sind getaggt sind für die Ausgabe. Viel mehr Arbeit, aber besser um eine Größenordnung:

In Servlet:

%Vor%

In page.jsp :

%Vor%

Es gibt verschiedene Frameworks, die die Anzahl der Boilerplate reduzieren können ( ist ein einfaches Beispiel).

    
Tomasz Nurkiewicz 05.03.2012, 12:19
quelle
7

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

Dann

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

Ссылка

    
Shivan Dragon 05.03.2012 12:20
quelle
3

Ich weiß nicht, ob ich deine Frage wahrscheinlich verstanden habe.

  

Was Sie brauchen, ist Java-Klasse zu importieren und Java-Code in JSP

auszuführen
%Vor%

importieren Sie die Klasse und dann

%Vor%

Allerdings Java-Code in JSP ausführen ist keine gute Idee ...

    
jilen 05.03.2012 12:19
quelle
1

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.

    
Muhammad Imran Tariq 05.03.2012 12:19
quelle

Tags und Links