2016-08-12 12 views
0

Wie kann ich die void-Methode berechne2() in einer JSP aufrufen?
So wie ich nicht versuchen, nicht
Fehler arbeiten: Der Operator + für das Argument String, nichtig
So rufen Sie eine void-Methode in einer JSP

<html> 
<body> 
    <%! int zahl = 12; %> 
    <%! public int berechne() { 
     return zahl * zahl; 
    } 
    %> 
    <%! public void berechne2(int zahl) { 
     zahl = zahl * zahl; 
    } 
    %> 
    <%= "Zahl: " + zahl %><br> 
    <%= "Quadrat davon: " + berechne() %> 
    <%= "Quadrat davon: " + berechne2(zahl) %>  // here 
</body> 
</html> 
+0

Was erwarten Sie '<% =" Quadrat davon: "+ berichte2 (zahl)%>' genau? Wie gehen Sie davon aus, 'Quadrat davon:' mit dem Ergebnis einer ** 'void''-Methode zu belegen? P.S. Scriptlets sind seit mindestens einem Jahrzehnt extrem schlechte Praxis; Wenn ich du wäre, würde ich vergessen, dass sie überhaupt existieren. –

+0

Ich möchte die gleiche Ausgabe wie in "<% =" Quadrat davon: "+ berichte()%>". Ich muss das mit Scriplets machen. Das ist der bessere Weg? –

+0

Richtig, gut. Nun wissen wir, dass 'betrechne()' ein 'int' zurückgibt. Dies wird während der Verkettung in eine "Zeichenfolge" umgewandelt - so erhalten Sie zum Beispiel "Quadrat davon: 3". Nun sagen Sie mir bitte, was diese Ausgabe für eine Methode sein soll, die ** nichts zurückliefert **, d. H. Eine "void" -Methode. –

Antwort

-1

denken nicht definiert ist ich, sollten Sie einen anderen Ansatz machen, nicht so. Es ist entweder ein scriplet oder ein servlet zu machen und es bei Bedarf auf einer jsp Seite aufzurufen.

In Web-Anwendungen, von denen ich annehme, dass Sie versuchen zu bauen, kompilieren Sie eine Java-Klasse in eine .class-Datei und legen Sie sie in WEB-INF/-Klassen in den Anwendungen .war-Verzeichnis.

Jetzt, um den Code auf einem jsp zu importieren und zu verwenden.

Beispiel:

<%@ page import="java.util.List" %>

oder eine andere Klasse:

<%@ page import="mypackage.myClass1%>

Und wenn Sie mehrere Klassen importieren möchten, fügen Sie einfach , dazwischen: <% @ page import="mypackage.myClass1,mypackage2.myClass2,....,mypackageN.myClassN" %>

Viel Glück! : D

+0

Der gute Weg ist, alle Methoden in einer Java-Klasse zu bauen und dann diese von einem JSP anrufen? –

+0

Ich mache es so, in einigen Fällen stelle ich einfach den Code zwischen <%@...%>, aber ich denke, dass dieser Ansatz besser wäre. :) –

+0

Es ist eine gute Methode, eine [taglib] (https://docs.oracle.com/javaee/5/tutorial/doc/bnaiy.html) zu verwenden. JSPs sollten keine Java-Klassen importieren, aufrufen oder anderweitig Zugriff haben. Diese Empfehlung wurde vor einem Jahrzehnt datiert, jetzt ist es unverantwortlich. –

Verwandte Themen