2013-08-02 42 views
0

我非常需要關於JavaScript變量如何在Scriptlet中可用的建議。我知道JavaScript運行在服務器上運行腳本代碼的客戶端。但我認爲有一些方法可以使scriptlet中的javascript變量可用。下面是我的代碼。如何在Scriptlet中傳遞Javascript變量

的Javascript樂趣

function showDirStructure(repoId, repoName){ 


     <% 
     String sr = repoId; 
     if(sr!=null){ 
     JSONObject obj = getDirStructure.createJsonObject(request.getParameter("repoId")); 

     %> 

上述javascript函數(showDirStructure)採用兩個參數。我需要在Scriplet標籤上使用這些參數來調用createJsonObject(服務器端方法)。

回答

1

的Scriptlet是在有關網頁的任何數據從服務器發送到客戶端之前執行。無論你想做什麼,你都需要發送回發給服務器(使用表單或ajax調用)。我通常使用jQuery,所以我的答案將使用它,但可以隨意修改它以使用本機JS代碼。首先,我將在服務器上創建一個名爲createJsonObject的頁面,使用$ .ajax(type:「POST」)從客戶端調用它,並將兩個參數作爲對象{repoId:repoId,repoName:repoName}傳遞。在服務器上,我將JSP放在該頁面上,在頁面加載時讀取參數,執行函數並將數據返回給客戶端。在.done()中,我會用這些數據做一些事情(將它們顯示在窗體中,將它們保存在JS變量中...)。希望這可以幫助。

+0

它是一個非常好的主意。我會嘗試用這種方法來實現並讓你知道結果。 – Shibankar

0
javascript variable available in scriptlet 

NO。

裏面javascript,你不能叫jsp,在scriplets的代碼執行對服務器端

你需要或者作出新的內容服務器的請求(HTML表單/ AJAX)或維持在客戶端的JSON對象在頁面加載時使用,並在以後使用。

0

如果你的目的是要解析JSON字符串,你可以做在客戶端以及..你可以使用jQuery.parseJSON(http://api.jquery.com/jQuery.parseJSON/)或EVAL(不推薦,雖然EVAL)

+0

其實我必須在服務器端創建我的json對象,它將創建一個jQuery jstree。這個對象數據來自其他api。 – Shibankar

0

您可以在首次加載頁面時向同一資源(JSP頁面)發送請求,以便scriptlet可以使用javascript變量。