I need JavaScript array/multidimensional which is returned by Java class,
Just let Java/JSP print a syntactically valid JS array syntax. Keep in mind that Java/JSP and JavaScript doesn't run in sync. Java/JSP produces HTML as one large String
and JS is just part of it. JS ultimately runs in the webbrowser once it has retrieved all that HTML output from Java/JSP.
Assuming that you ultimately want the following valid JS array syntax:
<script type="text/javascript">
var strComboValue = [ "one", "two", "three" ];
</script>
Then you should write your Java/JSP code accordingly so that it prints exactly that syntax:
<script type="text/javascript">
var strComboValue = [
<%
String[] options = DBComboOptions.getOptions(combos);
for (int i = 0; i < options.length; i++) {
%>
"<%= options[i] %>"
<%
if (i + 1 < options.length) {
%>
,
<%
}
}
%>
];
</script>
It's only terribly unreadable (and not only because of using old fashioned scriptlets instead of taglibs). Easier, however, is to grab a JSON (JavaScript Object Notation) library like Google Gson and create an additional method getOptionsAsJson()
which does something like the following:
public getOptionsAsJson(Object value) {
return new Gson().toJson(getOptions(value));
}
And finally use it instead:
<script type="text/javascript">
var strComboValue = <%=DBComboOptions.getOptionsAsJson(combos)%>;
</script>
your can use json lib, on http://json.org there are many json librarys, i.e.
int[] arr = new int [] {1,2,3}; // java
convert to:
var arr = [1,2,3]; // javascript