我需要Java类返回的JavaScript数组/多维,
<script type="text/javascript"> var strComboValue = <%=DBComboOptions.getOptions(combos)%>; </script>
这里strComboValue是一个JavaScript变量和DBComboOptions.getOptions(combos)Java类中的returns数组。现在,我要用JavaScript编写该数组。
strComboValue
DBComboOptions.getOptions(combos)
只需让Java / JSP打印语法上有效的JS数组语法即可。请记住,Java / JSP和JavaScript不会同步运行。Java / JSP产生HTML很大,String而JS只是其中的一部分。一旦JS从Java/JSP检索了所有HTML输出,它最终将在Web浏览器中运行。
String
假设您最终想要以下有效的JS数组语法:
<script type="text/javascript"> var strComboValue = [ "one", "two", "three" ]; </script>
然后,您应该相应地编写Java / JSP代码,以便它准确地打印该语法:
<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>
这是完全不可读的。但是,更简单的方法是获取一个类似于GoogleGson的JSON(JavaScript对象表示法)库,并创建一个getOptionsAsJson()执行以下操作的附加方法:
getOptionsAsJson()
public getOptionsAsJson(Object value) { return new Gson().toJson(getOptions(value)); }
最后改为使用它:
<script type="text/javascript"> var strComboValue = <%=DBComboOptions.getOptionsAsJson(combos)%>; </script>