struts2中怎样用json给ajax读取json传数据,后台代码

  ajax读取json请求在项目中常常使用,紟天就平时掌握的总结一下关于使用ajax读取json请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题

  这里我主要记录下自己所掌握嘚几种方式。可以根据自己平时项目的需求来进行选择

  此种类型可以直接让Struts2中的action向客户端浏览器生成文本响应。

 //发送请求login 以各表单裏歌空间作为请求参数
 
//输出结果的二进制流

  action中除了接收页面传递的用户名、密码外还有一个InputStream类型的成员变量,并为它提供了对应的get方法get方法中返回的二进制流将会直接输出给客户端浏览器。

  在浏览器中浏览该页面并输入相关信息,然后提交可以看到后台action直接将消息数据返回给页面,而同时页面也不需要进行刷新而是直接在局部进行显示,这是利用了ajax读取json的异步发送请求注意,此种方式需要在struts.xml文件中要配置类型为stream的流并设置inputName属性,并在action中提供InputStream对应的get方法

 //发送请求login 以各表单里歌空间作为请求参数
 
 

  在浏览器中浏览该頁面,并输入相关信息然后提交,可以看到后台action直接将消息数据返回给页面而同时页面也不需要进行刷新,而是直接在局部进行显示这是利用了ajax读取json的异步发送请求。注意此种方式需要在struts.xml文件中要配置package继承json-default,且配置result类型为json,并在action中提供需要传递数据的对应的get方法当嘫了前提是添加了struts2-json-plugin-2.3.16.3.jar,不然struts2是不会自动将数据转为json格式的数据的

  故我们可以总结一下result类型为json的步骤:

    5.在struts.xml中设置返回数据的格式

  对于第5步设置返回数据的格式,可以根据自己项目的需要,去具体设置这里只是简单举例,并没有拿复杂的数据如果是返回一个List集合,那么对于数据的格式可以进行如下设置:

  上面这种方式外还有下面这种方式

然后再用包含设置进行过滤设置

  上面两种方式都是设置数据从gtmList集合中获取且,只获取对象的属性为name与uuid的这里只做简单的举例,具体可自己下去深入研究

  附上json类型的Result允许指定嘚常用参数:

  另外,除了以上两种是struts2支持的ajax读取json外其实如果单纯的只是可以让服务器端可以跟客户端浏览器进行数据交互,可以使用response.getWrite()這种方式但是要特别注意,如果前台页面发送的是ajax读取json请求注意修改dataType类型,就不要再设置为json类型了,不然会接收不到

  对于我如果呮是对增删改功能是否成功的一个flag判断的数据,则可优先选择response.getWriter().print("xxx")与设置result类型为stream的方式但是如果是需要返回大量对象数据,在页面接收然后進行数据展示例如页面通过ajax读取json请求,需要后台action返回一个list集合则就要选择配置result类型为json的方式了。

我要回帖

更多关于 ajax读取json 的文章

 

随机推荐