Struts2的json数据的访问

原创 2012年03月28日 21:58:25
action中:
	private  List<Admins> entities;
	private Admins admin;
	public Admins getAdmin() {
		return admin;
	}
	public List<Admins> getEntities() {
		return entities;
	}
	public String  execute(){
		AdminsService asi = new AdminsServiceImpl();
		entities = asi.getObjects(Admins.class);
		admin  = (Admins) asi.findObjectById(Admins.class, 1);
	}

配置文件中的内容为
形式1:
<result type="json"> 
	<param name="root"></param> 
</result>
测试的结果为:
{"admin":
{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"},
"entities":
[{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"},
{"address":null,"cellPhone":null,"email":null,"id":2,"password":"ssssssss2","realName":"sss2","role":null,"sex":null,"userName":"redarmy2"}, {"address":null,"cellPhone":null,"email":null,"id":6,"password":"ssssssss6","realName":"sss6","role":null,"sex":null,"userName":"redarmy6"},
{"address":null,"cellPhone":null,"email":null,"id":7,"password":"ssssssss7","realName":"sss7","role":null,"sex":null,"userName":"redarmy7"},
{"address":null,"cellPhone":null,"email":null,"id":8,"password":"ssssssss8","realName":"sss8","role":null,"sex":null,"userName":"redarmy8"},
{"address":null,"cellPhone":null,"email":null,"id":9,"password":"ssssssss9","realName":"sss9","role":null,"sex":null,"userName":"redarmy9"},
{"address":null,"cellPhone":null,"email":null,"id":3,"password":"ssssssss3","realName":"sss3","role":null,"sex":null,"userName":"redarmy3"},
{"address":null,"cellPhone":null,"email":null,"id":4,"password":"ssssssss4","realName":"sss4","role":null,"sex":null,"userName":"redarmy4"},
{"address":null,"cellPhone":null,"email":null,"id":5,"password":"ssssssss5","realName":"sss5","role":null,"sex":null,"userName":"redarmy5"}]}
因为前面返回的是一个admins对象还有一个集合对象,而且又没有设置要按哪个根节点元素去遍历。所以会把所有的信息都显示出来,返回的不是真正的json数据

形式2:
以entities为根去遍历,所有返回的是真正的json数据,会显示出自动提示效果
<result type="json"> 
	<param name="root">entities</param> 
</result>

形式3:
<result type="json">
	<param name="root">entities,admin</param>
</result>
响应为
{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"}
因为设置了两个根节点,所有第一个根节点会被第二个根节点顶替,会按照第二个参数去设置,但返回的不是真正的json数据,所有不会出现自动提示功能

形式4:
<result type="json">
	<param name="includeProperties">entities</param>
</result> 
响应为:
{"entities":[]}
includeProperties会包含参数作为属性,所以查不到内容

形式5:
<result type="json">
	<param name="includeProperties">entities\[\d+\]\.realName</param>
</result> 
响应为:
{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},
{"realName":"sss9"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"}]}
includeProperties是包含参数作为作为属性,entities\[\d+\]\.realName是以entities作为根节点去遍历下面的realName,返回的不是真正的json数据

形式6:
<result type="json">
	<param name="includeProperties">^entities\[\d+\]\.realName</param>
</result>
响应为:
{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},
{"realName":"sss9"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"}]}
^:匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
原因同上,不过由于list集合的根节点本来就是entities,所有全部匹配

ajax请求Struts2返回JSON数据方法

如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好...
  • xiaoxiaoxianxian
  • xiaoxiaoxianxian
  • 2014年10月20日 22:20
  • 3722

struts2使用json传数据的例子

dataMap public class TestStruts2 { //注意加set和get方法 private String name; ...
  • u013458516
  • u013458516
  • 2014年06月10日 16:40
  • 1330

struts2返回json数据配置

struts2要想返回json数据那么需要用到struts2-json-plugin.jar 在配置action类的父包时需继承json-default。 默认情况下,action类是选择继承st...
  • mafan121
  • mafan121
  • 2015年11月08日 16:42
  • 1302

在用struts2框架时在Action中返回json数据

在上一篇搭建了struts2开发环境,之前开发一些小项目都是直接使用的servlet,在servlet中返回json数据很容易:在response对象中打开流直接写入json数据就好了。今天学习str...
  • u013972558
  • u013972558
  • 2016年05月17日 23:28
  • 5834

Struts2+AJAX获取json数据

昨天晚上遇到了一个bug,是ajax调用struts2里面的方法获取json的问题,虽然现在那个问题没有解决,但是各种百度后,发现对stuts2跟ajax的交互认识又深了。 一,如果设置Action返...
  • lhc2207221755
  • lhc2207221755
  • 2016年02月01日 10:33
  • 2605

json与struts2进行数据交互配置详解

strut2提供了支持json的插件 必须继承json-default、json-default继承自struts-default.                   ...
  • jspamd
  • jspamd
  • 2012年10月12日 09:11
  • 2761

struts2怎么设置action返回Json数据

在很多情况下我们的项目都有异步刷新,那么在Struts2中怎么才能让你的Action 返回视图呢? 可以直接看第3步 将struts2-json-plugin-2.3.16.3.jar文件拷贝到W...
  • xy_focus
  • xy_focus
  • 2016年03月30日 17:04
  • 2271

struts2项目jsp页面通过js调取action中的封装的json

jsp页面: Client Side Pagination in DataGrid This sample shows how to implement client s...
  • gslzydwgh
  • gslzydwgh
  • 2017年02月01日 00:54
  • 437

关于struts2传递json数据时取不到的问题

action里没有results属性的getter/setter方法 或者定义includeproperties
  • a13164815445
  • a13164815445
  • 2017年04月09日 23:25
  • 239

Struts2返回json的几种方式

在web项目中,我们不一定全部数据都放在值栈zhong
  • a837199685
  • a837199685
  • 2014年06月26日 16:14
  • 3274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2的json数据的访问
举报原因:
原因补充:

(最多只允许输入30个字)