【问题标题】:how to iterate the arraylist value in javascript function? [duplicate]如何在javascript函数中迭代arraylist值? [复制]
【发布时间】:2013-02-02 18:15:30
【问题描述】:

我有两个名为 asclist、desclist 的数组列表,其中包含升序记录和降序记录。在 JSP 中,我可以迭代这两个数组列表值。它工作正常。我的代码如下所示

List <UserInfo> asclist=new ArrayList<UserInfo>();
asclist=(ArrayList)request.getAttribute("ascend");
if(!asclist.isEmpty())
{
    for(UserInfo info: asclist)
    {
        out.print("<td>"+info.getId()+"</td>");
        out.print("<td>"+info.getName()+"</td>");
        out.print("<td>"+info.getAge()+"</td>");
        out.print("<td>"+info.getSalary()+"</td>");
        out.print("<br>");
    }
   }
    List <UserInfo> desclist=new ArrayList<UserInfo>();
desclist=(ArrayList)request.getAttribute("descend");
if(!desclist.isEmpty())
{
    for(UserInfo info: desclist)
    {
        out.print("<td>"+info.getId()+"</td>");
        out.print("<td>"+info.getName()+"</td>");
        out.print("<td>"+info.getAge()+"</td>");
        out.print("<td>"+info.getSalary()+"</td>");
        out.print("<br>");
    }
   }
%>

我需要的是如何使用具有相同按钮的函数在 javascript 中实现此代码。第一次,通过单击按钮,升序应该可以工作,下次如果我单击按钮,降序应该可以工作。我们怎样才能做到这一点。提前谢谢..

我的 JavaScript 代码是

<script>
function Ascend()
{ 
<%
List <UserInfo> alist=new ArrayList<UserInfo>();
alist=(ArrayList)request.getAttribute("ascend");
if(!alist.isEmpty())
{
    for(UserInfo info: alist)
    {
        out.print("<td>"+info.getId()+"</td>");
        out.print("<td>"+info.getName()+"</td>");
        out.print("<td>"+info.getAge()+"</td>");
        out.print("<td>"+info.getSalary()+"</td>");
        out.print("<br>");
    }
    alist.clear();
}
else
{
    out.print("The list is empty");
}
%>

}
</script>
<input type="button" onclick="Ascend()" value="SORT" />   

但它不起作用....

【问题讨论】:

  • 哪个按钮?你试过什么?请向我们展示您的 JavaScript 代码,尤其是两个列表
  • 了解 JavaScript 中的数组:eloquentjavascript.net/chapter4.html.
  • 关于你的更新:你应该看看生成的“JavaScript”。你会看到它是完全无效的。 JSP代码在服务器上运行,结果发送到客户端。
  • 谢谢菲利克斯。那么我如何在javascript中编写相同的逻辑?
  • 我还是没有得到正确的答案...

标签: javascript jsp arraylist jstl jsp-tags


【解决方案1】:

你应该尝试在函数中填充一个javascript数组(可能是一个数组数组),然后用它来设置html中的值

function Ascend()
{ 
var list = [];
<%
List <UserInfo> alist=new ArrayList<UserInfo>();
alist=(ArrayList)request.getAttribute("ascend");
if(!alist.isEmpty())
{
    for(UserInfo info: alist)
    {
        out.print("list.push([\"" + info.getId() +"\"]);")
    }
    alist.clear();
}
%>
// write javascript code to iterate over 'list' and create html elements on the client side
}
</script>

基本上你需要使用jsp中的代码生成javascript代码

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 2020-06-23
    • 2012-10-05
    • 2019-11-04
    相关资源
    最近更新 更多