关于struts2,使用jquery发送ajax请求,返回json字符串的问题
aysnc:false, 下面加一句 dataType:"json", 试一下。 你的配置文件没错,其实不用这么麻烦,JSONArray array = JSONArray.fromObject(smallTypes); System.out.println(array.toString()); this.result = array.toString(); 这三句代码不需要。 在action中,只要有get和set方法,值都能传到前台。
php怎么接收前端传来的json数据
会jquery吗,可以先从jquery的ajax入手,会比较简单。ajax写在js脚本里,一般是获取表单的数据(value)然后传到php脚本进行处理,再接受返回的数据。jquery的写法是这样的:js脚本
type是传值的方式,有get和post,php脚本里取值语句也要用对应的方式。url后面的参数是将数据传递到你想要的php脚本路径,这里是相对路径。data是你要传递的数据,一般从表单中娶过来后写成json的形式传递。 datatype是获取数据的格式,success是传递成功后的反馈或者使用接收回来的数据,这里的data参数是php处理后的(你想要的)数据,php那边对应的是echo后面的东西。php脚本:index.php前面两句是取传过来的数据,分别对应了ajax里data的数值,第三句是一个简单的数据处理。最后php脚本的输出值就是echo语句后面的内容,并返回给js脚本里success的function的参数data。jquery访问servlet并返回数据到页面的方法
假设:
1、你的页面在Web-Root下,内容为:
,所用编码为utf-82、你的servlet为: HelloWorldServlet.java 映射路径为 servlet/helloWorldServlet 步骤: 1、引入jquery-1.6.4.min.js 2、编写id为userName的输入框的点击触发函数: $("#userName").keyup(function(){ $.ajax({ type: "post", url: "servlet/helloWorldServlet?userName="+$(this).val(), dataType: "json", success: function(data){ $("#showMsg").html(data.msg);//修改id为showMsg标签的html }, error: function(){ alert("请求出错"); } }) })
3、后台处理接收到的内容: request.setCharactorEncoding("utf-8"); String userName = request.getParameter("userName"); response.setCharactorEncoding("utf-8"); PringWriter out = response.getWriter(); out.print("{"msg":"你好~~"+userName+"!"}"); 注意事项: 1、这里的编码统一为utf-8 2、请求路径servlet/helloWorldServlet为相对路径,因此你的页面必须在项目的Web-Root下(也就是默认的web文件夹下,名字可能因项目配置不同而改变) 3、没了,记得给分哦,打字很辛苦的~