jsp中利用jquery+ajax传递json格式参数与前后台之间

来源:互联网 发布:淘宝网太极鞋 编辑:程序博客网 时间:2024/04/25 16:50

经过一段时间的实验琢磨,终于将前后台之间的参数传递搞定了,实验所用工具myeclipse+structs1.2。

总结:容易出错的地方:1.ajax中data的格式一定要写对,这里举了两种形式,一种是  data:{参数:“”}   另一种是  data:“参数=”+变量。

2.后台传递到前台数据转化为json格式,步骤要掌握好。

3.在js使用jquery必须要引用进来,否则会不执行jquery语句,这个问题困扰了我半天才解决掉,菜鸟的悲哀啊。jquery引用流程如下:网上下载jQuery.js,jquery-1.4.2.min.js两个js文件,放在webroot下的文件夹js中,引用代码如下:

<script src="<%=path%>/js/jQuery.js" language="javascript"type="text/javascript"></script>

<script src="<%=path%>/js/jquery-1.4.2.min.js" language="javascript"type="text/javascript"></script>

其中<%=path%>就代表了根目录wenroot文件目录。

4.ajax的url路径必须要写对。

5.当前台没有传递参数到后台时,data可以不用写,或用data:{}代替。

前台代码如下:

[java] view plaincopyprint?
  1. <span style="white-space:pre">              </span>var checkValue=$("#s1").val();  
[java] view plaincopyprint?
  1. <span style="white-space:pre">              </span>//这个var是获取的id问s1的select选择的opention值  
  2.                 $  
  3.                 .ajax({  
  4.                     type : "post",  
  5.                     url : "getShowDataList.do",  
  6.                     async : true,  
  7.                     //data:{data:""},这种也可以  
  8.                     data :   
  9.                         "filepath="+checkValue  
[java] view plaincopyprint?
  1. <span style="white-space:pre">                  </span>//data:中的是传递到后台的数据,这里数据格式为json格式  
  2.                     ,  
  3.                     dataType : "json",  
  4.                     error : function() {  
  5.                         //alert(checkValue);  
  6.                         alert('加载失败!');  
  7.                     },  
  8.                     success : function(json) {  
[java] view plaincopyprint?
  1. <span style="white-space:pre">                  </span>//这里的json是后台传递过来的数据,这里数据格式也是json格式  
前台获取后台的json格式list数据集,这段写在function中
[java] view plaincopyprint?
  1. var points = [];//创建数组   
  2.                         for ( var i = 0; i < json.length; i++) {  
  3.   
  4.                             var str = new OpenLayers.LonLat(json[i].lon,  
  5.                                     json[i].lat);  
  6.                             points.push(str);  
  7.   
  8.                         }  



后台代码:

[java] view plaincopyprint?
  1. public ActionForward execute(ActionMapping mapping, ActionForm form,  
  2.             HttpServletRequest request, HttpServletResponse response) {  
  3.   
  4.         String filepath = request.getParameter("filepath");  
[java] view plaincopyprint?
  1. <span style="white-space:pre">      </span>//获取前台传递过来的filepath  
  2.         System.out.println(filepath);  
  3.           
  4.         List<Show> datalist = getShowData(filepath);  
  5.   
  6.         response.setContentType("appliction/json;charset=utf-8");  
  7.         JSONArray jsonArray = JSONArray.fromObject(datalist);  
[java] view plaincopyprint?
  1.                //下面是传递后台json格式的list数据集到前台  
  2.     try {  
  3.   
  4.         PrintWriter out = response.getWriter();  
  5.         out.print(jsonArray);  
  6.         for (int i = 0; i < jsonArray.size(); i++) {  
  7.             System.out.println(jsonArray.get(i));  
  8.         }  
  9.         out.flush();  
  10.     } catch (Exception e) {  
  11.         e.printStackTrace();  
  12.     }  
  13.     return null;  

原创粉丝点击