jstl迭代中的JavaScript

jstl迭代中的JavaScript,javascript,jstl,Javascript,Jstl,我有以下代码: <%int number=0;%> <c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1"> <td><%=++number%></td> <td> <div id="content" style="table-layout:fixed; width:40

我有以下代码:

     <%int number=0;%>

    <c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
       <td><%=++number%></td>
      <td>
      <div id="content" style="table-layout:fixed; width:405px; word-wrap:break-word;">
      <script language="JavaScript" type="text/JavaScript">
            function load(){
                    var content='${row.content}';
                    document.getElementById("content").innerHTML=content;
                    document.getElementById("content").innerHTML=Utf8.decode(document.getElementById("content").innerHTML);     
            }
            window.onload=load;
    </script>
    </div>
    </td>
    </c:forEach>

函数加载(){
var content='${row.content}';
document.getElementById(“内容”).innerHTML=content;
document.getElementById(“内容”).innerHTML=Utf8.decode(document.getElementById(“内容”).innerHTML);
}
window.onload=加载;

问题是,它只显示最后一个内容的结果,而不是根据数字逐行打印出来。

这不是正确的方法,但一个简单的解决方案是使用
addEventListener
而不是
onload

<%int number=0;%>

<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
   <td><%=++number%></td>
  <td>
  <div id="content<%=number%>" style="table-layout:fixed; width:405px; word-wrap:break-word;">
  <script language="JavaScript" type="text/JavaScript">
        window.addEventListener("load", function () {
                var element = document.getElementById("content<%=number%>");
                element.innerHTML=Utf8.decode('${row.content}');     
        }, true);
</script>
</div>
</td>
</c:forEach>
现在,脚本文件(本例中我使用jQuery在任何浏览器上都可以工作):


这不是正确的方法,但一个简单的解决方案是使用
addEventListener
而不是
onload

<%int number=0;%>

<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
   <td><%=++number%></td>
  <td>
  <div id="content<%=number%>" style="table-layout:fixed; width:405px; word-wrap:break-word;">
  <script language="JavaScript" type="text/JavaScript">
        window.addEventListener("load", function () {
                var element = document.getElementById("content<%=number%>");
                element.innerHTML=Utf8.decode('${row.content}');     
        }, true);
</script>
</div>
</td>
</c:forEach>
现在,脚本文件(本例中我使用jQuery在任何浏览器上都可以工作):


如果在浏览器中查看页面源代码,您正在创建的内容将如下所示(注意${row.content}已在服务器上被替换):

页面片段变得更加简单:

<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
  <td>${totalRow}</td>
  <td>
    <div class="contentbits">${row.content}</div>
  </td>
</c:forEach>

${totalRow}
${row.content}

如果您在浏览器中查看页面源代码,您正在创建的内容将如下所示(注意${row.content}已在服务器上被替换):

页面片段变得更加简单:

<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
  <td>${totalRow}</td>
  <td>
    <div class="contentbits">${row.content}</div>
  </td>
</c:forEach>

${totalRow}
${row.content}

可以,但这不是正确的方法。问题是为什么他的onload只得到最后一个元素,我的问题解决了他的问题。但是我说,这不是正确的方法,但是你可以这样做。所以,我只是简单地替换addEventListener中的jQuery函数?你可以,但是
$(function(){…})
window.onload=function(){…}
window.addEventListener('load',function(){…})相同可以,但不是正确的方法。问题是为什么他的onload只得到最后一个元素,我的问题解决了他的问题。但是我说,这不是正确的方法,但是你可以这样做。所以,我只是简单地替换addEventListener中的jQuery函数?你可以,但是
$(function(){…})
window.onload=function(){…}
window.addEventListener('load',function(){…})相同onload和Utf8怎么样?我们如何在上述代码中使用它们?@DoniAndriCahyono-这种方法不需要和“onload”处理程序,因为这样做时不需要javascript。在将页面发送到浏览器之前,所有循环和内容替换都在服务器上完成。我经常使用这种方法,并且(正如我对阿德里安的回答所评论的)我使用UTF-8编码的unicode端到端;页面编码通过
内容类型
响应标题设置为
文本/html;字符集=utf-8。。。我不需要在页面中添加任何内容。关于“onload”和“Utf8”的内容如何?我们如何在上述代码中使用它们?@DoniAndriCahyono-这种方法不需要和“onload”处理程序,因为这样做时不需要javascript。在将页面发送到浏览器之前,所有循环和内容替换都在服务器上完成。我经常使用这种方法,并且(正如我对阿德里安的回答所评论的)我使用UTF-8编码的unicode端到端;页面编码通过
内容类型
响应标题设置为
文本/html;字符集=utf-8。。。我不需要在页面上写任何东西。
.contentbits {
    table-layout:fixed;
    width:405px;
    word-wrap:break-word;
}
<c:forEach var="row" items="${tAdmin.rows}" varStatus="totalRow" step="1">
  <td>${totalRow}</td>
  <td>
    <div class="contentbits">${row.content}</div>
  </td>
</c:forEach>