怎么用ajax获取后台一个list集合,并在页面显示出来?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用ajax获取后台一个list集合,并在页面显示出来?相关的知识,希望对你有一定的参考价值。

参考技术A

1、首先确认一下,返回的obj是对象数组还是json串,如果是对象数组,那么你的用法应该是没有问题的,如果是json串,你需要用 var list = eval("("+obj+")"); 将其转换为对象数组,然后再取list.length。

2、如果是字符串的话,应该是没有问题的,下面代码完全复制到一个新网页中试试:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title></title>

</head>

<body>

<button onclick="showlength();">读取</button>

<script type="text/javascript">

function showlength()

var obj = "['device':'2014年','geekbench':'1','device':'2015年','geekbench':'8']";

var list = eval("(" + obj + ")");

alert(list.length);

</script>

</body>

</html>

3、也可以考虑JSON,或者XML 把返回XML文档,如:<?xml version="1.0" ?><books><book id="0001"> <name>Thik</name></book><book id="0002"> <name>Thik344</name></book></books> 然后用Javascript解析这段XML,按照你想要的方式呈现在页面。

jsp加载时怎么获取后台list集合并遍历

我后台有两个list集合,jsp页面加载时,我要先获得集合的值,然后把集合的值遍历出来,成为jsp页面的左菜单,一个list是菜单的名,一个是菜单的标记参数(如下面的,emp,date,user,等参数)。求详细代码,步骤我明白,代码不会写。
下面是我jsp代码,目前是写死的。我不用struts2什么的框架,就是 servlet。

<body class="frame_class">
<div id="topDataTd" width="450" height="66" style="background-color: #5356FF">
<h1 style="font-size: 45px;color: #FFFFFF;"> Excel 管理</h1>
</div>
<div id="leftPanel">
<div id="menuList" >
<h1>excel添加</h1>
<ul style="">
<li><a href="skip.do?params=emp" onclick="change(this)" target="mainFrame">emp单表</a></li>
<li><a href="skip.do?params=date" onclick="change(this)" target="mainFrame">日期-单表</a></li>
<li><a href="skip.do?params=user" onclick="change(this)" target="mainFrame">user单表</a></li>
<li><a href="skip.do?params=role" onclick="change(this)" target="mainFrame">role单表</a></li>

1、首先,需要JSTL-1.2的jar包,自行百度搜索下载。

2、将JSTL-1.2的jar包放入web工程的lib文件夹下。

3、在需要的遍历List的页面中引入JSTL的核心标签库。

4、使用<c:forEach><c:forEach/>标签遍历List数组。

5、【items】中使用EL表达式,来拿到List数组。

6、【var】用指定变量名来接收遍历数组的值。

7、利用EL表达式,将var中的值取出,即可。

8、展示效果。

参考技术A 代码示例,供参考。

<html> 
<head> 
</head> 
<body> 
<body class="frame_class">
<div id="topDataTd" width="450" height="66" style="background-color: #5356FF">
<h1 style="font-size: 45px;color: #FFFFFF;">    Excel 管理</h1>
</div>
<div id="leftPanel">
<div id="menuList" >
<h1>excel添加</h1>
<ul style="">
<%!
list=request.getattribute("你在request中设置的列表名称")//获取列表
PrintWriter out = response.getWriter();
For(int i=0;i<list.size();i++)//for循环遍历列表,输出ul中的li

out.println("<li href='"+list[i].getUrl()+"' >"+list[i].getName()+"</li>")
 
%>
<ul>
</body> 
</html>

追问

很强大,但是它怎么知道去那个action中取list集合呢?这个在那写?我是刚上来就加载这个页面。

追答刚上来就加载这个jsp页面?  那你的数据是从哪里来的? 

比如是数据库,你可以把

list=request.getattribute("你在request中设置的列表名称")

改成:

UserDao ud = new UserDao();
list = ud.getUserList();


所以,你在java中是怎么取list中的数据,那在jsp的<%  %>中就怎么取好了。

追问

非常感谢,我去试试。能加我Q吗? 237613433

本回答被提问者采纳
参考技术B struts标签可以自动遍历获取的列表,不用struts,我觉得可以在页面中嵌入java代码的方式实现:现在servlet的方法里用request.setattribute添加列表
<%!
list=request.getattribute()//获取列表
%>
<% for()//再写一个for循环遍历
%>
<li><%=获取列表值 %></li>
<%
%>

你试试看吧追问

我需要在页面加载时获取到这个list。然后显示成这个页面的菜单。该怎么弄呢?

参考技术C 不用其他框架,就用servlet,你在后台处理时,session里面把你说的list的值set进去,例如:session.setAttribute(key,value)。在前台页面中用<% List list = (List)session.getAttribute(key)%>得到,然后for循环,遍历list变量。追问

求详细代码,我知道步骤,代码写不出来。而且我也没有用session。全是 reuqest,response

参考技术D 定义一个类,在页面直接用方法获取就行

以上是关于怎么用ajax获取后台一个list集合,并在页面显示出来?的主要内容,如果未能解决你的问题,请参考以下文章

怎样用ajax获取后台传过来的map的长度,该怎么解决

ajax能返回并接收list集合类型吗?

jsp加载时怎么获取后台list集合并遍历

c#中,在后台传递了一个集合到.aspx页面,在页面中要怎么遍历呢?

用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,

怎么利用ajax模糊查询后台数据库并在页面上用下拉框显示