2017-06-14 29 views
0

我的代碼如下,我想在Java代碼中做所有創建categoryListMap對象,然後轉換爲categoryList,我該怎麼辦?如何轉換JavaScript關聯數組和Java列表圖

... 
    var categoryList = []; 

<% 
    List<Object> modelMaster = psiSearchForm.getModelMaster(); 
    String parentKey = ""; 
    String categoryKey = ""; 
    String text = ""; 

    for (int i = 0; i < modelMaster.size(); i++) { 
     Map option = (Map) modelMaster.get(i); 

     parentKey = (String)option.get(ConstantContainer.MODALITY); 
     categoryKey = (String)option.get(ConstantContainer.CATEGORY); 
     text = categoryKey + ": " + (String)option.get(ConstantContainer.CATEGORY_NAME); 
%> 
     categoryList.push({ 
      parent: "<%=parentKey%>", 
      key: "<%=parentKey%><%=categoryKey%>", 
      text: "<%=text%>" 
     }); 
<% 
    } 
%> 
+0

JSP表達式不查克·諾里斯它不能打電話的Array.push的JavaScript從Java。只有chuck norris纔有這種力量。 – karthick

+0

我的意思是在java中創建列表映射後,然後使用for循環在javascript中推送到categoryList,我可以理解嗎? – mikezang

+0

你可以創建一個JSON對象並將其分配給categoryList – karthick

回答

0

您正嘗試在JSP中調用JavaScript函數,這是不可能的。您可以改爲在JSP中創建數組並在JavaScript中設置最終值。

<body> 
<% 

    JSONArray arr = new JSONArray(); 
    for(int i =0; i < 5; i++) { 
     JSONObject object = new JSONObject(); 

     object.put("name", "santa"+i); 
     object.put("mail", "santa"+i+"@email.com"); 

     arr.add(object); 
    } 

%> 
    <script> 
     var obj = <%= arr %>; 

     console.log("JS obj", obj); 
    </script> 
</body> 

我使用的庫是json-simple-1.1.1.jar。

頁進口

<%@page import="org.json.simple.JSONObject,org.json.simple.JSONArray"%>