你这只是个请求的例子,没有返回值的解析,success,failure,error方法呢?$(document).ready(function(){
 $.ajax({
  type: 'POST',
  url: "roleright_left.action",
  success: function() {
  },
  error: function() {
  }
  });
  
});

解决方案 »

  1.   

    success: function (data, textStatus) {
        // data 可能是 xmlDoc, jsonObj, html, text, 等等...
        // data就是服务端返回的json字符串,解析data
    }
      

  2.   

     $.ajax({
      type: 'POST',
      url: url,
      dataType:"json",
      success:function(msg){ 
         alert("ajax返回成功"); alert("数据:"+msg); },
         error:function(){ alert("ajax返回错误了"); }
      });这是网上的原方法,我大概明白是执行了url中的action的到一个回调函数msg可我的action
    /**
     * 权限部分
     * @return
     */
    public String left(){
    SysRole role=new SysRole();
    role.setRoleId(3);
    list = ser.findbyrRole(role);     
    /* if(roleright!=null){
    return "findbyidsuccess";
    }*/
    System.out.println("-----------------执行了------------");

     HttpServletResponse response = ServletActionContext.getResponse(); 
            response.setContentType("appliction/json;charset=utf-8"); 
          
            JSONArray json=JSONArray.fromObject(list);
            try {
    response.getWriter().print(json.toString());
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
     
    return "left";
    }
    页面应该怎么调用这个list呢??
      

  3.   

    你 alert下msg就知道了。他已经把list转化成json了。response.getWriter().print(json.toString());
      

  4.   

    不行,直接走这里了
      error:function(){ alert("ajax返回错误了"); }
    这个框是跳出来了。。额
      

  5.   

    response.getWriter().print(json.toString());

    PrintWriter out = response.getWriter();
    out.write(json.toString());
    out.flush();
    out.close();
      

  6.   

    public String left(){
    SysRole role=new SysRole();
    role.setRoleId(3);
    list = ser.findbyrRole(role);     
    /* if(roleright!=null){
    return "findbyidsuccess";
    }*/
    System.out.println("-----------------执行了------------");

     HttpServletResponse response = ServletActionContext.getResponse(); 
            response.setContentType("appliction/json;charset=utf-8"); 
          
            JSONArray json=JSONArray.fromObject(list);
            try {
    response.getWriter().print(json.toString());
                                            //按照你说的方法,加到这里了。
    PrintWriter out = response.getWriter();
    out.write(json.toString());
    out.flush();
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      return "left";
    }
    --------------------------------------------
    继续  error:function(){ alert("ajax返回错误了"); }。。
      

  7.   

    response.getWriter().print(json.toString()); //这句可以删了。
      

  8.   

    return "left"; 改成 return null;试试
      

  9.   

    见鬼了,你自己写个servlet试试。
      

  10.   

    额,碰到楼主相关的问题了,不过我是都不知道怎么的到action中的值
    http://topic.csdn.net/u/20110922/14/7e7f5e69-1c9a-47ac-bfdb-ac6ac4488445.html?seed=585836966&r=75663286#r_75663286,有空帮我看看把,呵呵
      

  11.   

    把方法的返回类型String改回void
    再把return "left";去掉
      

  12.   

    额,不好意思13楼我自己发错了。,不过我照着14楼的方法改后,问题依旧,还是报继续 error:function(){ alert("ajax返回错误了"); }。。
      

  13.   

    12# ,我用的是struts2中的action,没用servlet
      

  14.   

    看到你在我帖子的回复,我过来顶你的帖子来了
    如果你用的是struts2.的话,那就这样写
    private List list;@JSON(name="tict")
    public List getList() {
    return list;
    }
    public void setList(List list) {
    this.list = list;
    }
    写一个私有的list,生成get,set。。然后再get方法前面加上@JSON(name="list")
    当然了,需要你的这个action是继承json-default顺便说一句你得导struts2-json-plugin-2.2.1.1.jar
    如果还有问题请再下面跟帖
      

  15.   

    @JSON(name="tict")
    写错了,,,,应该是
    @JSON(name="list")
      

  16.   

    struts2的话好像struts.xml里要配置的  <package name="purJSONSupplier" namespace="/pur/purJSONSupplier" extends="json-default">
    <action name="getOneSupplier" class="ContractAction" method="getOneSupplier">
    <result type="json"></result> 
    </action>
      </package>
      给个参考
      

  17.   

    我上面的tict是一个对象的缩写。。因为我要把这个对象传到前台你现在是要传一个list,直接传就行了,不用转换什么格式。。如果不信我可以写一个传list的例子你看看
      

  18.   

    把你这个left的 xml贴出来看看。
      

  19.   

    我先按照keaixiaozhu7688说的测试一下,一会儿测试后告诉大家结果,谢谢
      

  20.   

     下断点后JSONArray json=JSONArray.fromObject(list); action中这句错了,貌似这个是.net的吧额?,我先测试下楼上们说的方法
      

  21.   

    那请21#,帮忙把例子贴出来吧 ,我这儿连集成都报错了Unable to load configuration. - package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59
      

  22.   

    直接上代码吧:@Action(value="checkCardNo")
    public String checkCardNo(){
    this.list = this.infCardService.findCard(null, this.searchWord,this.getPageNo(), -1);
    // if (this.list != null && this.list.size() > 0) {
    // this.nullTag = "N";
    // }else{
    // this.nullTag = "Y";
    // }
    return SUCCESS;
    }
    //-------------------------------------我是华丽的分割线------------------------------\\
    private List list;
    @JSON(name="list")
    public List getList() {
    return list;
    }
    public void setList(List list) {
    this.list = list;
    }
    function checkCardNo(obj){
    shuzi(obj);
    if(obj.value.length > 0){
    $.ajax({
      type: "POST",
      url: "checkJson/checkCardNo.action",
      data: {"searchWord":obj.value},
      dataType:"json",
      success: function(json){
    var nullTag = json.list;
    var list = new Array();
    list = nullTag;
    alert(list.length);
    // var nullTag = json.nullTag;
    // if(nullTag=="N"){
    // alert("卡号已存在!");
    // $("#ticNo").val("");
    // $("#ticNo").focus();
    // }
      },
      error:function(){
      alert("操作失败");
      }
    });
    }
    }
    最后alert出来的是1,因为我的后台的list确实只有一个元素
      

  23.   

    上面是代码部分,应你的要求,把配置也贴出来吧@ParentPackage(value="json-default")
    @Namespace("/checkJson")
    @Results({
    @Result(name = "success",type="json")
    })因为我用的struts2注解,所以根本就没有struts.xml
    所谓的配置都是写在action类里如果你要用struts2注解,需要导struts2-convention-plugin-2.2.1.1.jar。
      

  24.   

    额。。我加入网上找的一个jar包后报这样的错误
    Unable to load configuration. - package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Caused by: Unable to load configuration. - package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
    ... 29 more
    Caused by: The package name 'json-default' at location package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.1.jar!/struts-plugin.xml:8:59 - package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.addPackageConfig(DefaultConfiguration.java:124)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:486)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
    ... 31 more
      

  25.   

    Caused by: The package name 'json-default' at location package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.1.jar!/struts-plugin.xml:8:59 - package - jar:file:/F:/apache-tomcat-6.0.20/webapps/crm/WEB-INF/lib/struts2-json-plugin-2.2.1.jar!/struts-plugin.xml:8:59
      

  26.   

    如果你不是用的struts2注解的话就得像这位大哥说的一样,extends="json-default"。。反正就是你写的那个方法所在的action类怎么着得继承json-default
      

  27.   

    怎么样了哥们,昨天下班之后你给我的留言现在才看到,不好意思,因为我下班回家之后没上CSDN了。
      

  28.   

    Struts2的JSON不能安装平常的JSON来做
      

  29.   

    <action name="help_checkFile" class="com.servlet.Help"
    method="checkFile">
    <result name="success">help.jsp</result>
    <result name="error">help.jsp</result>
    </action>
    类似这样的写法没一点问题实在不行你手工拼个json传下试试。
      

  30.   

    还是不行呢~不过我暂时先不用jquery弄那个菜单吧,周日的时候,人家给我写个例子,我再看看,到时候弄吧,,弄出来再结贴,唉,这样在BBS上讨论,还是不很方便,呵呵
      

  31.   

    List list = new ArrayList();
    Map map = new HashMap();
    map.put("id",100);
    map.put("name","a");
    list.add(map);
    //JSONArray这个类要导入2个jar包,名字我忘记了,自己从网上找把。。
    response.printWriter().print(JSONArray.fromObject(list).toString());
    $.getJSON("xxx.action",function(data)
    {
        var str = "";
        for(var i = 0;i < data.length;i++)
        {
            str += data[i].id + "" + data[i].name + "<br/>";
        }
        document.write(str);
    });
      

  32.   

    你把list的数据转化为json格式就行了,实际就是拼成字符串,然后解析字符串就行了
      

  33.   

    无语,我写的和LZ一样的,没有问题的说,贴出来public String showImage(){
    HttpServletResponse response = ServletActionContext.getResponse();
    response.setContentType("text/json");
    response.setCharacterEncoding("UTF-8");
    List<News> list_news = shouyeService.queryNews(3, uuid);

    JSONArray jsonString =JSONArray.fromObject(list_news);
    try {
      PrintWriter out = response.getWriter();
    out.print(jsonString.toString());
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    }
    用到的包
    json-lib-2.4-jdk15.jar整合包下载  http://download.csdn.net/download/longzheaotian/3330120
      

  34.   

    在JS里面迭代不了List的。传过来的数据应该是要JSon,xml,html……等等,这些是可以返回来的,你在js里面迭代List,在JS里面是没有List这个对象的,只有Array。
      

  35.   

    原理就是,AJAX请求,在服务器端返回JSON格式的数据,,再用JS解释成DOM。。打完收工。其实上面的你就是这样做的。
      

  36.   

    javaScript部分:  
    <script type="text/javascript" src="jquery-1[1].2.1.pack.js"></script>
         <script type="text/javascript">  
          function select(x) {
           var selectname = "table1";
           var urlvalue = "table1_select";
          if(x==1){
            urlvalue = urlvalue + "?selectid="+$("#table1 option:selected").get(0).value; 
            selectname = "table2";
          }else{
           
            }
    $.ajax({
    url : urlvalue,
    type : 'post',
    dataType : 'json',
    contentType : 'application/json:charset=utf-8',
    cache : false,
    success : function(data) {
    var obj = data;
    document.getElementById(selectname).options.length = 0;
    $.each(obj, function(key, val) {
          var op = new Option(obj[key].name, obj[key].id);
      document.getElementById(selectname).options.add(op);
    });
    }
    });
    }
         window.onload=select;
         </script>
    action部分:
    public void select() throws UnsupportedEncodingException {
             list = table1Servcie.getList();
            
             HttpServletRequest request = ServletActionContext.getRequest();
             request.setCharacterEncoding("UTF-8");
             String seledid = new String();
             //这里如果你从jsp传来的如果是中文的话...你明白,应为不能json简单迭代出级联表,只能再查一遍了
             if(request.getParameter("selectid")!=null){
                seledid=new String(request.getParameter("selectid").getBytes("ISO-8859-1"));
                System.out.println(seledid);
                list = table2Service.getlList(seledid);
                System.out.println(list.size());
             }
             //设置json配置,防止实体类中级联的死循环,擦json对级联的操作那么不方便T_T
             JsonConfig cfg = new JsonConfig();
             cfg.setJsonPropertyFilter(new PropertyFilter()
             {
                  public boolean apply(Object source, String name, Object value) {
                 //table2s实体类中set名字
                    if(name.equals("table2s")||name.equals("table1")) {
                      return true;
                    } else {
                      return false;
                   }
                 }
                });
             //转成json数组,需要jar包支持
             JSONArray jsonArray = JSONArray.fromObject(list,cfg);
             //用servlet往页面返回
             HttpServletResponse response = ServletActionContext.getResponse();
             response.setCharacterEncoding("UTF-8");
             PrintWriter out = null;
             try {
      out = response.getWriter();
      out.print(jsonArray);
      out.flush();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }finally{
      out.close();
      }
    }擦,折腾这么多天实现了终于,谢谢大家。有不明白的可以联系我,这是有级联表的操作,不用级联会简单,对了别忘记导相应的json包~~~
      

  37.   

    jsp部分,其实这都不用看的  
       <input type="text" value="让我崩溃3天的json+struts2+jquery:" size="40">
         <select id="table1" onchange="select(1);"></select>
         <input type="text" value="让我:" size="5">
         <select id="table2" onchange="select(2);"></select>
      

  38.   

    42楼的public String CbfList(){
    int sub; 
    // zzjgcode
    String zzjg = "321302109";
    int zzjgNum = zzjg.length();
    if(zzjgNum<=9){
    sub = zzjgNum+3;
    cbfList = jdfxService.getAllCbf(sub, zzjg);
    }else{
    sub = zzjgNum+2;
    cbfList = jdfxService.getAllCbf(sub, zzjg);
    }
    System.out.println(cbfList.size());
    return SUCCESS;
    }<script lang="javascript" type="text/javascript">
    $(document).ready(function () {
    $('#jqChart').jqChart({
    title: { text: '柱形图示例' },
    axes: [
    {
    location: 'left',//y轴位置,取值:left,right
    }
    ],
    series: [
    //数据1开始
    {
    type: 'column',//图表类型,取值:column 柱形图,line 线形图

    data: , , , , , , , ]//数据内容,格式,,......]
    },

    ]
    });
    });
    </script>
    把读取出来的值,循环赋个上面那个data中的一月,50(数量);
    不过jquery,中的代码不会写。
      

  39.   

    data: [['一月', 800], ['二月', 40], ['三月', 55],