2011-05-18 48 views
1

我創建一個頁面有兩個文本框。當用戶在框中輸入值,然後點擊提交按鈕,我打電話給一個功能。在那個函數中,我得到了這兩個值。然後我必須將這些值傳遞給一個將返回結果的java函數。然後我會顯示那個結果。我不知道如何做到這一點。我寫了代碼。但最終會出現錯誤。在JavaScript調用函數,它在同時必須調用Java函數

<%@ page import="java.util.*,mypackage.JavaFile"%> 
<html> 
<HEAD> 
<TITLE> 
sample script 

</TITLE> 
<SCRIPT LANGUAGE = "JavaScript"> 

function getResult(form){ 
var value1 = form.val.value; 
var value2 = from.val1.value; 
<% 
String res = JavaFile.myFunc(value1,value2); 
%> 
return res; 
} 
</SCRIPT> 
</HEAD> 
<BODY> 
<FORM NAME="form" ACTION="" METHOD="GET">Enter value1:<br> 
<INPUT TYPE="text" NAME="val" VALUE=""><P> 
Enter value2<br> 
<INPUT TYPE="text" NAME="val1" VALUE=""><P> 
<INPUT TYPE="button" value="submit" onClick="getResult(this.form)"> 
</FORM> 
</BODY> 
</HTML> 

編譯錯誤值1 value2未解析。請幫忙。

+0

您需要提交表單或使用AJAX與服務器通信: http://www.google.com/search?q=ajax+java – mplungjan 2011-05-18 13:49:58

+0

您正在從JavaScript調用Java方法,就好像它在客戶端環境中可用。 – asgs 2011-05-18 13:51:48

回答

2

因此,您對JSP是服務器端代碼但javascript是瀏覽器端代碼這一事實感到困惑。您需要通過HTTP POST實際提交表單,並從POST請求正文獲取value1和value2值,然後在您的JSP Java代碼中使用它們。

1

您正在將java與javascript混合 - 在客戶端(即:瀏覽器)上運行javascript代碼,並在您的服務器上執行java代碼。不同的計算機,不同的編程語言,完全不同的上下文。

你必須有一個(阿賈克斯?)打發送到服務器的變量,打電話給你的Java函數,返回響應和瀏覽器來捕獲響應並顯示給用戶

+0

如何讓ajax調用?請舉例 – Roshan 2011-05-18 13:50:56

+1

請看我的評論 – mplungjan 2011-05-18 13:51:29

0

所以,你需要區分客戶端JavaScript和服務器端Java。如果您爲此創建了兩個單獨的頁面,那將會更簡單。在第一頁上,您可以使用其輸入和提交按鈕創建表單。讓該表單提交到第二頁。

在第二頁上,您可以嘗試獲取從客戶端提交的值。在這種情況下根本不需要使用JavaScript。

要想從形式在Java中提交您可以在JSP頁面上的值:

<% 
     String value1 = request.getParameter("val"); 
     String value2 = request.getParameter("val1"); 



    %> 

現在你可以使用你的Java方法,你要撥打的值。