jsp中包含多个Javascript标记
以下是我在jsp中的代码:jsp中包含多个Javascript标记,javascript,jsp,jsp-tags,Javascript,Jsp,Jsp Tags,以下是我在jsp中的代码: <script> var myArray = []; </script> <c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" > <script> //Executes for each iteration. Do something COOL.
<script>
var myArray = [];
</script>
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
<script>
//Executes for each iteration. Do something COOL.
myArray.push("Something from this iteration");
</script>
</c:forEach>
var myArray=[];
//为每个迭代执行。做点酷的事。
push(“来自这个迭代的东西”);
现在请考虑以下内容:
<script>
var myArray = [];
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
myArray.push("Something from this iteration");
</c:forEach>
</script>
<c:forEach var="attributes" items="FROMthisBEAN" varStatus="vStatus" >
//Executes for each iteration. Do something COOL.
</c:forEach>
var myArray=[];
push(“来自这个迭代的东西”);
//为每个迭代执行。做点酷的事。
这两个代码的输出相同。问题是在性能方面,哪一个更好?
在第一种情况下,c:forEach中的脚本标记会一次又一次地重复。
但是在第二种情况下,我创建了一个已经存在于JSP中的c:forEach
在这里完全迷路了。请告知。完全没有必要将这些东西放在单独的
标签中。如果您真的想让它变得更好,您可能应该考虑创建一个JavaScript数组文本,而不是一系列“push()”调用。将Java数组呈现为JSON的JSP扩展就可以做到这一点
编辑-详细地说,JSON编码器作为JSTL函数提供,允许您编写如下内容:
<script>
var myArray = ${yourTLD:toJSON( some.java.array _)};
</script>
<script>
var myArray = [ "something", "something", "something" ];
</script>
var myArray=${yourTLD:toJSON(some.java.array)};
“toJSON”函数将获取数组并将其呈现为标准JSON,具体取决于其内容(当然,这可能会受到一定的限制,具体取决于所使用的JSON代码)。交付到浏览器的结果JavaScript看起来像:
<script>
var myArray = ${yourTLD:toJSON( some.java.array _)};
</script>
<script>
var myArray = [ "something", "something", "something" ];
</script>
var myArray=[“某物”、“某物”、“某物”];
同样,这完全取决于Java数组中的内容。Java有各种JSON编码库,编写一个并不十分困难(事实上,在特殊情况下,编写一个JSON编码库比使用开源库更容易)。将函数作为JSTL EL函数提供只需在某处创建一个公共静态函数并在.tld文件中声明即可。有趣的是,您能否提供有关如何实现此功能的更多信息?