我需要由 Java 类返回的 JavaScript 数组/多维,
<script type="text/javascript">
var strComboValue = <%=DBComboOptions.getOptions(combos)%>;
</script>
Here, strComboValue
是一个 JavaScript 变量,DBComboOptions.getOptions(combos)
返回 Java 类中的数组。现在我想要 JavaScript 中的数组。
只需让 Java/JSP 打印语法上有效的 JS 数组语法即可。请记住,Java/JSP 和 JavaScript 并不同步运行。 Java/JSP 生成 HTML 作为一大块String
而JS只是其中的一部分。一旦 WAS 从 Java/JSP 检索到所有 HTML 输出,它最终就会在 Web 浏览器中运行。
假设您最终想要以下有效的 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>
它只是非常不可读(并且不仅仅是因为使用老式的 小脚本而不是标签库)。然而,更简单的是获取 JSON(JavaScript 对象表示法)库,例如谷歌Gson并创建一个附加方法getOptionsAsJson()
它执行类似以下操作:
public getOptionsAsJson(Object value) {
return new Gson().toJson(getOptions(value));
}
最后用它来代替:
<script type="text/javascript">
var strComboValue = <%=DBComboOptions.getOptionsAsJson(combos)%>;
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)