jquery 的ajax请求传递json数据给struts的action

Posted yuhaiqiang_123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 的ajax请求传递json数据给struts的action相关的知识,希望对你有一定的参考价值。

1.ajax用法

<span style="white-space:pre">		</span>$.ajax(
	 		dataType:'json',//标示使用json数据格式
	 		url:'AddNotice!AddNotice.action',//url,记得带action
	 		data:<span style="color:#ff0000;">title</span>:<span style="color:#33ff33;">title</span>,content:content,notice:notice,//
                       //红色的和action中的变量相同,绿色的是js变量
<span style="white-space:pre">	</span>     		type:'post',//post请求
	 		success:function(data,status)
 			$.messager.show(data.msg);//在这个函数中可以接受action传回的数据,并作处理,例如data.msg这个msg就是action中传回的json的键名,data.msg获得值,$.messager.show()是easyui中的函数,使用的话是需要加相应的js引用,请看我的另一篇介绍
<span style="white-space:pre">	</span>		,
<span style="white-space:pre">	</span>		error:function(data,status)
	 		
	 			$.messager.show("系统提示","操作失败","warning");
<span style="white-space:pre">	</span> 		
	 	);

2.后台action用法
首先添加相应的.jar,这里付一下struts的相应jar下载链接,包括json,如果不知道导入哪个jar,就全都倒进去。

百度云
  

   2.1然后在struts.xml中的package中继承json-default,一定要的

 <package name="resource" namespace="/"  extends="json-default">
否则action解析不了。 然后传回数据的时候这样。
JSONObject jsonObject = JSONUtil.NewJSonObject();
		msg = "改公告已经保存";
		jsonObject.put("msg", msg);
		try 
			JSONUtil.ResponsePrint(jsonObject);
		 catch (IOException e) 
			
			e.printStackTrace();
		
这个msg就是前台data.msg中的msg, JSONUtil是自己写的工具类
public static JSONObject NewJSonObject()
	
		return new JSONObject();
	
public static void ResponsePrint(Object jsonObject) throws IOException 
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html; charset=utf-8");
		response.setHeader("Pragma", "no-cache");
		response.setHeader("Cache-Control", "no-cache, must-revalidate");
		PrintWriter pWriter = response.getWriter();
		pWriter.print(jsonObject);
		pWriter.flush();
		pWriter.close();
	
完成!

以上是关于jquery 的ajax请求传递json数据给struts的action的主要内容,如果未能解决你的问题,请参考以下文章

如何利用jQuery post传递含特殊字符的数据

使用 jQuery 的 $.ajax() 将多个 Json 对象作为数据传递

jquery ajax参数

如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成

html能否使用Jquery.Ajax调用互联网上的接口?

ajax传递json,然后服务器接受json的代码编写