2016-08-12 142 views
0

如何在JSP中調用void方法berechne2()?
我試圖不工作
誤差的方法:操作+未定義的參數字符串,無效
如何在JSP中調用void方法

<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

你期望什麼?<%=「Quadrat davon:」+ berechne2(zahl)%>'準確地做?你如何期待用'void'**方法的結果來連接'Quadrat davon:'?附:腳本至少十年來一直是非常糟糕的做法;如果我是你,我會忘記他​​們甚至存在。 –

+0

我需要與「<%=」Quadrat davon:「+ berechne()%>」中相同的輸出。我必須用腳本來做到這一點。那是更好的方法? –

+0

對,很好。現在,我們知道'berechne()'返回一個'int'。這在連接期間轉換爲'String' - 例如,您可能會獲得「Quadrat davon:3」。現在,請告訴我這個輸出應該是什麼樣的方法,**不會返回任何**,即一個'void'方法。 –

回答

-1

我認爲你應該做一個不同的方法,不是這樣。它可以製作scripletservlet,並在jsp頁面上需要時調用它。

在我假設您正在嘗試構建的Web應用程序中,將java類編譯爲.class文件,並將其放入應用程序.war目錄中的WEB-INF/classes中。

現在,導入並使用jsp上的代碼。

例子:

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

或一些其他類:

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

如果要導入多個類,只需添加,之間: <%@import="mypackage.myClass1,mypackage2.myClass2,....,mypackageN.myClassN" %>

祝你好運! :D

+0

好的方法是在java類中構建所有方法並且從jsp調用這些方法? –

+0

我這樣做,在某些情況下我只是把代碼放在<%@...%>之間,但是我認爲這種方法會更好。 :) –

+0

這是使用[taglib](https://docs.oracle.com/javaee/5/tutorial/doc/bnaiy.html)的好方法。 JSP不應該導入,調用或以其他方式訪問Java類。這個建議是十年前的,現在它是不負責任的。 –