场景描述:点击某按钮弹出窗口(jquery实现的dialog),拿到action里面传来的数据,异步请求啊。
          叩谢~!

解决方案 »

  1.   

    弹出窗口用flexigrid吧。基于jquery的。
    只需要设置一些参数就OK。非常简单。接受数据类型为JSON。
    然后用JSON的jar包提供的JSON格式转换方法自动拼字符串就可以了。
    AJAX需要返回null 不然在struts2框架下可能会有问题。
      

  2.   

    js中:
    点击id为export的按钮。
    $(function(){
    $("#export").bind('click', function(){
    if(confirm("确定导出日志数据?")){
    $.ajax({
    url : "exportLog.action",
    data : {address : '<s:property value="address" />', authuserid : '<s:property value="authuserid" />', userid : '<s:property value="userid" />', startTimeRange : '<s:property value="startTimeRange" />', endTimeRange : '<s:property value="endTimeRange" />'},
    type : "post",
    dataType : "json",
    success : function(data) {
    //包数据解析为json 格式 
      alert(data.msg);
    }
    });
    }
    });
    });struts.xml:
    <action name="exportLog" 
    class="com.congoal.idtrust.struts2.action.IDtrustRadiusExcelAction" 
    method="ExportExcel">
    </action> action中实现:
    this.writerJSON("{\"msg\" : \"" +message+ "\"}", ServletActionContext.getResponse());
    return null;public void writerJSON(String info, HttpServletResponse response) {
    setJSONHeader(response);
    try {
    PrintWriter out = response.getWriter();
    out.write(info);
    out.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }就行了。