Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsp中包含多个Javascript标记_Javascript_Jsp_Jsp Tags - Fatal编程技术网

jsp中包含多个Javascript标记

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.

以下是我在jsp中的代码:

<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文件中声明即可。

有趣的是,您能否提供有关如何实现此功能的更多信息?