2013-03-23 110 views
1

我從文件db.jsp獲取一些JSON數據。 jsp文件從我的數據庫中獲取用戶詳細信息,並以JSON格式打印,我使用get方法實現此目的。如何在jQuery中添加JSP變量?

我的網址應該是這樣的:db.jsp?userid=DIBYA這裏的值'DIBYA'是用戶輸入的。我試圖連接爲:

function submit() { 
    $.getJSON('db.jsp?userid='+<%String userName = request.getParameter("userid"); out.print(userName);%>, function(data) { 

但是,我的控制檯顯示錯誤消息爲ReferenceError: DIBYA is not defined。請告訴我在我的代碼中需要進行哪些更改?

感謝

Dibya

回答

0

以下行

$.getJSON('db.jsp?userid='+<%String userName = "DIBYA"; out.print(userName);%>, function(data) { 

將通過JSP容器被翻譯成下面的JavaScript代碼:

$.getJSON('db.jsp?userid='+DIBYA, function(data) { 

因此,在瀏覽器中的JavaScript引擎將尋找名爲DIBYA一個JavaScript變量。

如果你只是希望值是字符串DIBYA,我甚至不明白你爲什麼使用scriptlet。只是使用

$.getJSON('db.jsp?userid=DIBYA', function(data) { 
+0

在我的情況下,我把用戶名作爲表單中的輸入。爲了簡單起見,我省略了它編輯了這個問題。 – NewUser 2013-03-23 15:13:17

+0

你的解釋給了我暗示應該是什麼解決方案。在我使用表單的頁面中,我可以使用您提供的解決方案,但是,我將使用userId設置會話,因此對於該建議我使用scriptlet。 – NewUser 2013-03-23 15:22:52

+0

請勿使用scriptlet。使用JSP EL和JSTL:'$ .getJSON('db.jsp?userid = $ {theSessionAttribute}',函數(data)' – 2013-03-23 15:24:20

1

你忘了引號「DIBYA」。您的代碼擴展爲:

function submit() { 
    $.getJSON('db.jsp?userid='+DIBYA, function(data) { 

但你想:

function submit() { 
    $.getJSON('db.jsp?userid='+'DIBYA', function(data) { 

或更好:

function submit() { 
    $.getJSON('db.jsp?userid=DIBYA', function(data) { 

所以,你需要寫這樣的:

function submit() { 
    $.getJSON('db.jsp?userid=<% out.print(userName);%>', function(data) { 
+0

嗯,我已經給了一個演示,我知道用戶名,但我已經提到,我將使用用戶名變量作爲輸入。 – NewUser 2013-03-23 15:11:03

+0

當然。我把代碼放到JSP引擎後面。 – 2013-03-23 15:14:16

+0

+1提供解決方案。我知道什麼是錯的後,我自己想出了它.. – NewUser 2013-03-23 15:19:20