使用 ajax 方式提交表单,并获取后台处理结果

在项目中使用了ajax方式来提交表单,现在记录一下,以便以后复习备用。

在前台使用ajax 方式提交表单,后台使用了 Struts2 的action接收请求,查询数据库,返回一个包含自定义类型对象的List。因为这个List需要在前台页面使用,而又无法将这个List直接返回给前台,所以我找到了org.json这个jar包,将List包装成了 json 类型,通过 response.getWriter().print() 写到前台 jsp 页面,成功返回了List数据,前台再解析这个json 即可。

前端 ajax 代码如下:

$.ajax({
	//请求处理页
	url:"",
	dataType: "json",
	type: "POST",
	//传送请求数据
       data: { "friendName" : $friendName},
        beforeSend: function () {   
        if($friendName == ""){
          alert("搜索内容不能为空!");
          return false;
         }
       },
      //处理成功返回的数据
      success:function(retVal){
     $.each(retVal,function(index,element){
	
       }
})

其中 url 为将要处理请求的后台action路径,dataType 为数据返回类型, data 域的值即为需要提交到后台的值,beforeSend 函数是用来做提交前的检查,不满足条件就不提交,success 函数是后台处理成功后的回调函数,retVal 即为后台返回的数据,这里是刚才被包装成 json 的List 数据。

后台 action 代码为:

list = userService.searchUserByName(name);
JSONArray array = new JSONArray(list);
try {
<span style="white-space:pre">	</span>response.getWriter().print(array);
	System.out.println("array= "+array);
} catch (Exception e) {
}

注意:使用 org.json 封装的 json 数据的格式为:

[{"eno":"7369","ename":"SMITH"},{"eno":"7499","ename":"ALLEN"}],因此在 success 中直接遍历retVal这个json数组即可,如果在后台手动构造json数据,格式为:

{"emp":[{"eno":"7369","ename":"SMITH"},{"eno":"7499","ename":"ALLEN"}]} ,在 success 函数中就需要使用 eval 函数解析返回的json数组,var obj = eval("("+retVal+")");然后再遍历obj即可





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值