2014-11-14 63 views
0

我想將代碼標題和價格作爲參數發送給書對象,但會給出非法的啓動表達式錯誤。如何在jsp中的java代碼中使用Javascript變量作爲參數?

function addrecord() { 
    code = document.getElementById('code').value; 
      title = document.getElementById('title').value; 
      price = parseFloat(document.getElementById('price').value); 

    <% Book book = new Book(%> code <% ,%> title <% , %> price <%); 
    bookdb.addRecord(book); 
      %> 
      document.getElementById("code").value = ""; 
      document.getElementById("title").value = ""; 
      document.getElementById("price").value = ""; 
    } 
+0

請告訴我們你已經嘗試了什麼,以及你的具體問題是什麼。 – Neeku 2014-11-14 23:51:40

回答

3

您誤解了java和javascript的運行位置。 您使用<%和%>,就好像它將值發送到服務器一樣,而不是。這些標籤僅用於jsp內部以啓動Java代碼片段。這僅適用於您生成頁面的情況。一旦你的html在你的瀏覽器中,這些標籤將不會執行任何操作。

突出重要的關鍵詞,當你請求一個jsp頁面與您的瀏覽器,則瀏覽器打開一個網絡連接到服務器不打算作爲sarcarsm

。把這兩個(瀏覽器,服務器)想象成生活在兩個完全不同的地方。

服務器然後運行java代碼。當它執行時,它會生成一個html頁面。 這HTML頁面通過網絡連接發送回客戶端(您的瀏覽器

瀏覽器將收到此完全形成HTML頁面,並使用它來創建它的視圖。在這個頁面上,你可以運行JavaScript,但JavaScript的只能在客戶端(瀏覽器

運行,以得到任何變量回服務器再次,你將需要:GET或POST表單(使用一個表格內提交,或使用JavaScript post request like a form submit),做一個阿賈克斯調用(http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtml)或讓用戶點擊鏈接(a href =「...你的頁面」)。

最簡單的方法就是做:

<form method="POST" action="your/page/url"> 
    <input type="hidden" name="someName" value="someValue" /> 
    <input type="submit" /> 
</form> 

讀一些鏈接,並確保你記住,你的瀏覽器和服務器是分開的,因此運行在瀏覽器中的JavaScript將不會到達服務器。

相關問題