请问各位大侠们,我该怎么用Jquery取得后台的List数据呢?      

解决方案 »

  1.   

    用过jq 哈哈。
    我当时使用struts 和jq 一起用的。
    去的时候使用struts标签取的
      

  2.   


    可是我是必须要从javascrpt里面取得后台的list呢~~~
      

  3.   

    没有用过Jquery,提两点看法不知道合不合适你,如果可以用标签取值,那么就可以再javascript中为相关对象赋值,比如var list = <...>之类的。
    如果不行是否可以尝试下使用ajax和json的组合
      

  4.   

    jquery获取list,一般都这么用:
    先将list进行toString();得到a,b,c,d这样的字符串,然后在前台通过var array=str.split(",");得到一个数组进行操作。
      

  5.   

    可以通过json提供的jar包,将后台的list数据封装成json格式的字符串,然后返回到页面的回调函数中,最后转换成json数据
    如:
    JSONArray json = JSONArray.fromObject(list);
    response.getWriter().println(json.toString());
    回调函数:
    function test(data)
    {
        data = eval("("+data+")");
    }
    这个时候data就是json数据了,可以直接在js中迭代
      

  6.   

    lz是对“前后台”的概念有些模糊。
    一般要做“给javascript一个后台数据”的东西,
    都是用<%%>先“写”到前台。
    然后再用javascript范畴的语句处理。
    比如
    var xxx = "<%=value%>";
    alert(xxx);
    这个value就是“后台”的数据,
    “传递”给前台,
    然后再用js对xxx进行处理。lz理解一下,就应该能豁然开朗了吧。如果陷入泥谭....good luck
      

  7.   

    有List对象,用struts的<s:iterator />很容易取啊
    然后在JavaScript里用document对象调用,lz可以试下
      

  8.   


    json提供的jar包,是需要下载的吗?JSONArray json = JSONArray.fromObject(list); JSONArray.formObject,我导入后,并没有这个方法呢~~请问这个是怎么回事呢?
      

  9.   

    $.getJSON(basePath+"res/data.do?method=getdataList&time="+new Date().getTime(),
    param,
    function(msg){
    var data = msg.list;//得到json对象
    $.each(data, function(i, n){
                        data.id;//得到对象的属性的值
                    });
            });
      

  10.   


    function(msg){ //msg是list吗?
      

  11.   

                java代码是这样的
                JSONObject json = new JSONObject();
                
                json.put("list", dataList);//dataList是你查询出来的集合
                
                response.setContentType("text/html;charset=utf-8");
                response.getWriter().print(json.toString());
                response.getWriter().close();
      

  12.   


    还想请教一个菜鸟级问题,请问那个json在JS中取出来后,该怎么进行循环呢?多谢指教了啊~~~~我对它不了解~~
      

  13.   


    我的List里面存的是对象,在JS里面可以循环出List里面的对象的属性吗?
    多谢指教了,谢谢·~
      

  14.   

    $.getJSON(basePath+"res/data.do?method=getdataList&time="+new Date().getTime(), 
    param, 
    function(msg){ 
    var data = msg.list;//得到json对象 
    $.each(data, function(i, n){ 
                        data.id;//得到对象的属性的值 
                    }); 
            }); 
    each这个不就是循环你的list对象么?
      

  15.   

    写错了个东西
    不好意思哦
    $.getJSON(basePath+"res/data.do?method=getdataList&time="+new Date().getTime(), 
    param, 
    function(msg){ 
    var data = msg.list;//得到json对象 
    $.each(data, function(i, n){ 
                        n.id;//====>得到对象的属性的值
                    }); 
            }); 
      

  16.   

    取数据,那用 ajax啊。页面 js里面有类型下面的代码片段var requestURL = url + actionPath;
    var queryType = $("input[@name=页面查询条件][@checked]").val(); //我这里是复选框
    var parameters = getParameter(queryType, "statistics");//这是我自己写的一个取取参数的方法而已。简单js.不用管细节
    $.ajax({
      type: "POST",
        url: requestURL,  
        data: parameters,
        dataType: "json",
        beforeSend: function(){ 
    display(false);
        },
        success: function(data){
        display(true);   
        setLvStatisticsRpt(data[0]);   //这里就是将取得的数据显示啦,这种js你应该会写吧。
    setDeptHealthy(data[1]);
    setCompetencySTATICS(data[2]);
        },
        error: function(msg){
        display(false);
        alert("System error !!");
        }
    });上面是取得 一个 数组,然后以Json返回。List模仿之。
      

  17.   


    怎么会没有这个方法呢?我还怕手写写错了,专门从项目中考了几行代码出来的你加入的json包对不对?还有依赖包都有吗?要不你加我QQ好
      

  18.   

    还有你上面说的,list中是对象,那拿到json对象后这样取值,
    比如你的对象里有2个属性,id和name,页面拿到的json数据叫data,
    循环里面就是data[i].id,data[i].name
      

  19.   

    java代码:
              假设你的List里面装的是String字符串.
            List<String> strs=new ArrayList<String>();
            StringBuffer sb=new StringBuffer();
            for(String s:strs){
               sb.append(s+",");
            }
            response.getWriter().out(sb.substring(0.sb.length-1).toString());jquery接受:
              $.post("text.action",function(response){
                 var strs=response.split(",");
                  for(var i=0;i<strs.length;i++){
                      '你要用这些字符串去干什么!'
                  }
             })
               
      

  20.   

    改一下,是个write方法.
        response.getWriter().write('----')
      

  21.   


    谢谢你这么耐心的指导,还想麻烦你一下:data: function(start, end, callback) {
     <%--日历取值,显示--%>
    $.getJSON("<%=basePath%>teaOnLineClassSelect.do",{o:"teaOnLineClassSelect"},function(obj){     
    var data = obj.list; 
    $.each(data,function(i,n){
    alert("课堂名称:"+n.onlineCourseName);//已经进入到这里,可是输出课堂名字确是未定义
    };
    });
    }); 我的后台是,在LIST里面存入对象.
    然后以这样的方式转换成JSON写:
      response.getWriter().print(json.toString());请问,为什么会出现未定义呢?
      

  22.   

    你这 json是什么对象? JSONArray? 还是 CookieList? 不能直接 lsit?
      

  23.   

    [Quote=引用 18 楼 fireelf000 的回复: 怎么会没有这个方法呢?我还怕手写写错了,专门从项目中考了几行代码出来的你加入的json包对不对?还有依赖包都有吗?要不你加我QQ好
    [/Quote]我晕,这个方法是我自己自定义的呀。就是一般的 $.each循环给页面栏位赋值的呀。
      

  24.   

                    List<ShowOnlineClass> testList= test.service();

    request.setAttribute("list", testList);
    JSONObject json =  new JSONObject();
    try {
    json.put("list", testList);
    System.out.println("Json:"+json.toString());
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    我是以这种方式写在后台的~~
    是这种写法出问题了吗?
    我对JSON不了解,都是在各位的帮组下才有了解的,现在还是请各位帮我解决下,非常感谢~~~
      

  25.   

    http://topic.csdn.net/u/20090518/20/799be98d-e2ca-4f0a-b441-19ae31101050.html
    看这个帖子的5楼和6楼
    如果用json的话 就看看这个
    http://blog.csdn.net/defonds/archive/2009/05/14/4185623.aspx
      

  26.   

    json.put("list", testList);  这样是可以的。不知道你页面怎么用的时候,会报对象未定义。
      

  27.   


    上面有一位说需要这么写:
    JSONArray json = JSONArray.fromObject(list);可是我
    JSONObject json =  new JSONObject();
    JSONArray jsonArray = new JSONArray();
    这样都可以
    就是jsonArray.fromObject(list);点不出来呢,是不是要导入包什么的呢?是不是jsonArray.fromObject(list);就可以将list转换为json里的数组,然后以这种形式显示呢?
    {"list":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]}
    //{"password":"1230","username":"coolcooldool"}  :就相当于一个list中的对象··
      

  28.   

     java:
            JSONArray list = JSONArray.fromObject(dataList);
            JSONObject json = new JSONObject();
            json.put("list", list);
            response.getWriter().print(json.toString());
            response.getWriter().close();
      

  29.   

    不是 
    JSONArray jsonArray = new JSONArray(); 
    这样都可以 
    jsonArray.fromObject(list);
      

  30.   

    最好以json格式返回数据.
    以前用过上面说的那个,觉得不是太好使。后来在网上下个了代码。不过那个代码也有点缺陷,也没时间去修改。对DateTime类型的没有做判断,而是当成bean了。public class JsonUtil { /**
     * 转换object类型数据到json格式字符串
     * @param obj 
     * @return String
     */
    public static String objectToJson(Object obj) {
    StringBuilder json = new StringBuilder();
    if (obj == null) {
    json.append("\"\"");
    } else if (obj instanceof String || obj instanceof Integer || obj instanceof Float || obj instanceof Boolean
    || obj instanceof Short || obj instanceof Double || obj instanceof Long || obj instanceof BigDecimal
    || obj instanceof BigInteger || obj instanceof Byte) {
    json.append("\"").append(stringToJson(obj.toString())).append("\"");
    } else if (obj instanceof Object[]) {
    json.append(arrayToJson((Object[]) obj));
    } else if (obj instanceof List) {
    json.append(listToJson((List<?>) obj));
    } else if (obj instanceof Map) {
    json.append(mapToJson((Map<?, ?>) obj));
    } else if (obj instanceof Set) {
    json.append(setToJson((Set<?>) obj));
    } else {
    json.append(beanToJson(obj));
    }
    return json.toString();
    } /**
     * bean到json格式字符串
     * @return String
     */
    public static String beanToJson(Object bean) {
    StringBuilder json = new StringBuilder();
    json.append("{");
    PropertyDescriptor[] props = null;
    try {
    props = Introspector.getBeanInfo(bean.getClass(), Object.class).getPropertyDescriptors();
    } catch (IntrospectionException e) {
    }
    if (props != null) {
    for (int i = 0; i < props.length; i++) {
    try {
    String name = objectToJson(props[i].getName());
    String value = objectToJson(props[i].getReadMethod().invoke(bean));
    json.append(name);
    json.append(":");
    json.append(value);
    json.append(",");
    } catch (Exception e) {
    }
    }
    json.setCharAt(json.length() - 1, '}');
    } else {
    json.append("}");
    }
    return json.toString();
    } /**
     * list数据到json格式字符串
     * @param list
     * @return String
     */
    public static String listToJson(List<?> list) {
    StringBuilder json = new StringBuilder();
    json.append("[");
    if (list != null && list.size() > 0) {
    for (Object obj : list) {
    json.append(objectToJson(obj));
    json.append(",");
    }
    json.setCharAt(json.length() - 1, ']');
    } else {
    json.append("]");
    }
    return json.toString();
    } /**
     * 数组类型格式数据到json格式字符串
     * @param array
     * @return String
     */
    public static String arrayToJson(Object[] array) {
    StringBuilder json = new StringBuilder();
    json.append("[");
    if (array != null && array.length > 0) {
    for (Object obj : array) {
    json.append(objectToJson(obj));
    json.append(",");
    }
    json.setCharAt(json.length() - 1, ']');
    } else {
    json.append("]");
    }
    return json.toString();
    } /**
     * map类型数据到json格式字符串数据
     * @param map
     * @return String
     */
    public static String mapToJson(Map<?, ?> map) {
    StringBuilder json = new StringBuilder();
    json.append("{");
    if (map != null && map.size() > 0) {
    for (Object key : map.keySet()) {
    json.append(objectToJson(key));
    json.append(":");
    json.append(objectToJson(map.get(key)));
    json.append(",");
    }
    json.setCharAt(json.length() - 1, '}');
    } else {
    json.append("}");
    }
    return json.toString();
    } /**
     * set类型数据到json格式字符串
     * @param set
     * @return String
     */
    public static String setToJson(Set<?> set) {
    StringBuilder json = new StringBuilder();
    json.append("[");
    if (set != null && set.size() > 0) {
    for (Object obj : set) {
    json.append(objectToJson(obj));
    json.append(",");
    }
    json.setCharAt(json.length() - 1, ']');
    } else {
    json.append("]");
    }
    return json.toString();
    } /**
     * 字符串到json格式
     * @param s
     * @return String
     */
    public static String stringToJson(String s) {
    if (s == null)
    return "";
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
    char ch = s.charAt(i);
    switch (ch) {
    case '"':
    sb.append("\\\"");
    break;
    case '\\':
    sb.append("\\\\");
    break;
    case '\b':
    sb.append("\\b");
    break;
    case '\f':
    sb.append("\\f");
    break;
    case '\n':
    sb.append("\\n");
    break;
    case '\r':
    sb.append("\\r");
    break;
    case '\t':
    sb.append("\\t");
    break;
    case '/':
    sb.append("\\/");
    break;
    default:
    if (ch >= '\u0000' && ch <= '\u001F') {
    String ss = Integer.toHexString(ch);
    sb.append("\\u");
    for (int k = 0; k < 4 - ss.length(); k++) {
    sb.append('0');
    }
    sb.append(ss.toUpperCase());
    } else {
    sb.append(ch);
    }
    }
    }
    return sb.toString();
    }
    }
      

  31.   

    用dwr吧 专用的页面上使用JavaScript直接调用后台的java对象.
      

  32.   


    可是我的就是:jsonArray.fromObject(list);这一句无法点出来,请问这是为什么呢?是不是要加包呢?再麻烦帮我解答下好吗?
      

  33.   

    我是引入这个包json-lib-2.2.3-jdk15.jar
      

  34.   

    asp.net 下怎怎么返回json格式的数据,貌似使用jquery的怎么都是用java的,有asp.net的jsonDll吗?
      

  35.   


      这个就不了解 了哦,不好意思哦~~~~ 你可以到.net板块去提下问,或者baidu下~
      

  36.   

    json提供的jar包,是需要下载的吗?JSONArray json = JSONArray.fromObject(list);  JSONArray.formObject,我导入后,并没有这个方法呢~~请问这个是怎么回事呢?
    要导这个 import net.sf.json.JSONArray;
      

  37.   


    为什么这个response老是报错啊,要这个response不报错怎么要新建一个类啊,现在我在做项目不可能专门建一个这样的类吧,有什么方法啊?
      

  38.   


    提供一个在action传递JSON格式list的实例给你,通过这个方法,可以将action里List转为json格式的字符串,再通过response返回到JSP页面:
    [code=Java]
    public ActionForward doGetStuInfo(ActionMapping mapping,
    ActionForm form, HttpServletRequest request,
    HttpServletResponse response) throws IOException{
              List<TbStuInfo> stuList = stuService.findStuInfos(...);
              JSONArray list = JSONArray.fromObject(stuList );
              JSONObject json = new JSONObject();
              json.put("stuList", list);          response.setCharacterEncoding("UTF-8");
              response.getWriter().print(json.toString());
              response.getWriter().close();
              return null;
    }
    然后JSP页面具体使用请参照15楼。