如何将我的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>
感谢您提出任何建议。
答案 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表达式,因此使用
发现使用<%= %>
表达式标记