如何将java数组元素添加到javascript数组中?

时间:2015-03-12 12:06:03

标签: java javascript arrays

如何将我的java数组内容添加到空的javascript数组中?我试过但它不起作用。

这是我在file.jsp中的代码。

<%@page import="javax.portlet.PortletPreferences" %>

   PortletPreferences prefs = renderRequest.getPreferences(); // here i am reading values from preferences in Liferay and rendering values

 <select id="dropdown1" onchange="changeAction(this.value);">
                        <option value="" selected="selected" >Select</option>
                        <option value="">value1</option>
                        <option value="">value2</option>
  </select>

      <label>Device</label>
      <%

       String device1 = prefs.getValue("device1","");
       String[] array1 = device1.split("\n"); // String[] array=["books","pens","cars"];
     %>

      <select id="dropdown2">
                <option value="select" selected="selected">Select</option>
      </select>

下面是我的Java脚本代码,jsp代码和javascripts都在同一个jsp文件中。

<script>
     function changeAction(optionVal){
     var tempArrayLabel = [];

     jQuery("#dropdown2").empty().append('<option value="-1" >Select</option>');

    if(optionVal == "selected val in first drop down") {

tempArrayLabel = "add values from array1 or device1"; // update the drop down list


}

for (var i=0;i<tempArrayLabel.length;i++){
    jQuery('<option/>').html(tempArrayLabel[i]).appendTo('#dropdown2');
}

}

 </script>

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:2)

<强>更新

试试这个(Java 8,see here for more ways to join an array in java

<%  
  String[] array=["books","pens","cars"];
  String array_joined = '["' + String.join('","', array) + '"];';
%>

或者使用它来加入数组,以防String.join menthod不可用

<%  
  String[] array=["books","pens","cars"];
  String array_joined = '"' + array[0] + '"';
  for (int i=1; i<array.length; i++) array_joined += ',' + '"' + array[i] + '"';
  array_joined = '[' + array_joined + '];';
%>

<script>
     var javaArray= <%= array_joined %> // renders ["books","pens","cars"];

     var tempArrayValue = [];

     function myFunction(){

     for(var i=0,j=0;i<javaArray.length;i++,j++){

     tempArrayValue[j]=javaArray[i]; //trying to store ["books","pens","cars"] values into "tempArrayValue"

     }

  }

</script>

注意我不记得jsp标签,所以我可能使用了不正确的标签来渲染上面的jsp表达式,因此使用

发现使用<%= %>表达式标记