解决方案 »

  1.   

    js把ajax获取的东西,扔到隐藏域里,后台就可以获取到了,小心异步,获取的值为null;
      

  2.   

    参考http://itlab.idcquan.com/Java/WebServices/920729.html
      

  3.   

    Action中添加属性showType给这个属性设置get set 方法,struts2会自动把ajax传递的这个值赋给showType
      

  4.   

    把想传的值拼在url后面即可,
      

  5.   

    Action里提供showType属性,并提供get-set方法,ajax:data可以使用{showType:showType}
      

  6.   

    dataType : 'json',//参数
                    data: "showType="+showType,
    你换成:
    dataType : 'json',//参数
                    data: {"showType":showType} 试试
      

  7.   

    1、你要在你的js里面先获取到showType的值,然后作为参数传递到后台。
    2、后台是struts2的话,只需要定义一下变量,然后get/set一下,在action对应的方法里直接获取就可以了
      

  8.   

    $.ajax({
    type : "get", //提交的类型
    url : "./growthTableJsonAction", //提交地址
    dataType : 'json',//参数
    data: {showType:showType},
    success : function(data) {
    alert($("showType").val());
    var acceptNumber = new Array(); //受理人数
    var bareMetalNumber = new Array(); //件数
    var etingDate = new Array(); //横坐标
    $.each(data, function(i, val) {
    acceptNumber.push(data[i].acceptNumber);
    bareMetalNumber.push(data[i].bareMetalNumber);
    etingDate.push(data[i].etingDate);
    });
    }
    });
    <s:select name="showType" id="showType" readOnly="true" 
                cssClass="width-158" onchange="selected()"
                list="#{1:'月份',2:'年份'}"  tabindex="1">
    </s:select> 
      

  9.   

    四、AJAX原理
    4.1概述
    4.2编写步骤
    1、测试与服务器的通信
    a、创建XmlHttpRequest对象,固定写法:
    function createXmlHttpRequest(){
       var xmlHttp;
       try{    //Firefox, Opera 8.0+, Safari
       xmlHttp=new XMLHttpRequest();
    }catch (e){
       try{    //Internet Explorer
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try{
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){}  
       }
    }
       return xmlHttp;
     }
     
     var xhr = createXmlHttpRequest();
    b、注册状态变化的事件处理:
    xhr.onreadystatechange=function(){
    if(xhr.readyState==4){
    //真正的处理
    if(xhr.status==200||xhr.status==304){
    //服务器正确返回
    var data = xhr.responseText;//服务器返回的数据
    //把返回的数据写到div中
    document.getElementById("d1").innerHTML=data;
    }
    }
    }
    c、初始化xhr对象
    xhr.open("GET","/ajaxday02/servlet/ServletDemo1?time="+new Date().getTime());
    d、向服务器发送数据
    xhr.send(null);
    4.3XmlHttpRequest详解(JavaScript对象)
    常用属性:
    readyState:代表着XmlHttpRequest对象的当前状态
    0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法) 
    1 (初始化) 对象已建立,尚未调用send方法 
    2 (发送数据) send方法已调用,但是当前的状态及http头未知 
    3 (数据传送中) 已接收部分数据,因为响应及http头不全,
    4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 
    只有为4,客户端操作相应的处理
    -------------------------------------------------
    status:代表服务器的HTTP相应码。200是成功。304服务器端内容没有改变。
    -------------------------------------------------
    responseText:服务器返回文本数据。

    onreadystatechange:当XmlHttpRequest对象的readyState发生变化时,都会触发该事件。

    常用方法:
    open(method,url,isAsync):初始化XmlHttpRequest对象。
    method:请求方式。一般使用get或者post
    url:请求的服务器地址。可以使用相对路径或者绝对路径。
    特别注意:如果该地址没有变化,浏览器一般不会再次发出请求的。解决办法,加上一个时间戳。
    /ajaxday02/servlet/ServletDemo1?time="+new Date().getTime()
    isAsync:是否是异步请求。默认是true。
    send(requestData):向服务器发送请求数据。没有传递null。
    数据时用在POST请求方式的。数据形式:username=admin&password=123

    通过XmlHttpRequest向服务器发送POST请求:
    //设置请求消息头,告知服务器,发送的正文数据的类型。
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//固定写法
    //发送数据
    xhr.send("username=admin&password=123");
    4.4服务端返回的数据
    HTML数据
    responseText:他是XmlHttpRequest对象的一个属性。服务器返回的数据会封装到此属性中。

    XML数据
    responseXML:返回的是xml对象的DOM对象。