我有一个servlet中取到一个list
如何利用jquery取得它
并且在页面上循环打印

解决方案 »

  1.   

    JSON
      

  2.   

    把list转化成字符串传到前台,字符串的形式推荐用JSON,对象转化为JSON字符串可用工具类JSON-LIB,前台取到后就是一个java对象,不用JQUERY也能很容易的遍历
      

  3.   

    其实我也知道用json 
    就是具体怎么做不了解了
    有没有谁来个简单例子啊
      

  4.   

    后台的东西跟jquery没什么关系,可以把list的内容包装后传道前台,至于如何便利,如何取值,就很简单了,同样跟用不用jquery没什么关系,jquery的强项在于对页面元素的筛选。
      

  5.   

    用json要加一大堆包。如果是简单的实现一下,可以直接用ajax解析一下xml搞定:
    servlet代码:package com.panjun.servlets;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;@SuppressWarnings("unchecked")
    public class ShowListServlet extends HttpServlet { private static final long serialVersionUID = -6920365688165262694L; private final List list = new ArrayList(); @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setContentType("text/xml;charset=UTF-8");
    PrintWriter out = resp.getWriter();

    //生成xml文件返回给html页面
    StringBuilder xml = new StringBuilder();
    xml.append("<items>");
    for (Object o : list) {
    xml.append("<item>").append(o).append("</item>");
    }
    xml.append("</items>");
    out.print(xml.toString());
    } @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req, resp);
    } @Override
    public void init() throws ServletException {
    list.add("aaaa");
    list.add("bbbb");
    list.add("cccc");
    list.add("dddd");
    }
    }
    调用页面<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    <script type="text/javascript">function initList(){
    var xhr;
    if(window.XMLHttpRequest)
    xhr = new XMLHttpRequest();
    else if(window.ActiveXObject)
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    xhr.open("get", "showListServlet", true);
    xhr.onreadystatechange = function(){
    if(xhr.status == 200 && xhr.readyState == 4){
    parseXML2List(xhr.responseXML);
    }
    }
    xhr.send(null);
    }function parseXML2List(xml){
    var list = document.getElementById('list');
        while(list.childNodes.length>0)
            list.removeChild(list.firstChild);

    var items = xml.getElementsByTagName("item");
    for(var i=0;i<items.length;i++){
    var option = document.createElement("option");
    var nText = document.createTextNode(items[i].text);
    option.appendChild(nText);
    list.appendChild(option);
    }
    }</script>
    </head>
    <body onload="initList();">
    <select id="list" size="5" style="width: 100px">
    </select>
    </body>
    </html>
      

  6.   

    上面的代码有点问题在Mozilla下不能显示:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    <script type="text/javascript">function initList(){
    var xhr;
    if(window.XMLHttpRequest)
    xhr = new XMLHttpRequest();
    else if(window.ActiveXObject)
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    xhr.open("get", "showListServlet", true);
    xhr.onreadystatechange = function(){
    if(xhr.status == 200 && xhr.readyState == 4){
    parseXML2List(xhr.responseXML);
    }
    }
    xhr.send(null);
    }function parseXML2List(xml){
    var list = document.getElementById('list');
        while(list.childNodes.length>0)
            list.removeChild(list.firstChild);

    var items = xml.getElementsByTagName("item");
    for(var i=0;i<items.length;i++){
    var option = document.createElement("option");

    var text = "";
    if(items[i].childNodes.length > 0)
    text = items[i].firstChild.nodeValue;

    var nText = document.createTextNode(text);
    option.appendChild(nText);
    list.appendChild(option);
    }
    }</script>
    </head>
    <body onload="initList();">
    <select id="list" size="5" style="width: 100px">
    </select>
    </body>
    </html>servelt也有问题:package com.panjun.servlets;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;@SuppressWarnings("unchecked")
    public class ShowListServlet extends HttpServlet { private static final long serialVersionUID = -6920365688165262694L; private final List list = new ArrayList(); @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //servlet返回的内容不允许客户端缓存
    resp.setHeader("cache-control", "no-cache"); resp.setContentType("text/xml;charset=UTF-8");
    PrintWriter out = resp.getWriter();
    StringBuilder xml = new StringBuilder();
    xml.append("<items>");
    for (Object o : list) {
    xml.append("<item>").append(o).append("</item>");
    }
    xml.append("</items>");
    out.print(xml.toString());
    } @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req, resp);
    } @Override
    public void init() throws ServletException {
    list.add("xxaaaa");
    list.add("");
    list.add("xxbbbb");
    list.add("");
    list.add("xxcccc");
    list.add("xxdddd");
    }
    }