您的位置:首页 > 编程语言 > Java开发

测试struts.xml中result参数的不同返回不同的json数据

2012-03-28 22:29 363 查看
测试struts.xml中result参数的不同返回不同的json数据

如果查询的是所有的数据,在action中定义的类型如下:

private List<Goods> entities;

public List<Goods> getEntities() {

return entities;

}

1.第一种:

在xml文件中如果没有param,内容如下:

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json"/>

</action>

它不是json数据,所以不能读取出来,结果为:

{"entities":[{"id":2,"name":"sss ","price":222.0},{"id":1,"name":"sss ","price":222.0},{"id":3,"name":" sss ","price":222.0},{"id":4,"name":" sss ","price":222.0},{"id":5,"name":" sss ","price":222.0}]}

可以看出多出来的是多一个entities,所以不是json数据

.

2.第二种:如果加上param的name为多的那个对象,则可以返回的是json数据

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json">

<param name="root">entities</param>

</result>

</action>

返回的数据为:

[{"id":2,"name":" sss ","price":222.0},{"id":1,"name":" sss ","price":222.0},{"id":3,"name":" sss ","price":222.0},{"id":4,"name":" sss ","price":222.0},{"id":5,"name":" sss ","price":222.0}]

可见返回的是json数据,并且在智能提示中可以提取出来,可以得知:

<param name="root">entities</param>

的意思是从根节点为entities的开始遍历,所有看到的数据就是json数据了。

3.如果在action中封装的是一个实体,也就是查询的是一条数据,则代码为:

private Goods entity;

public Goods getEntity() {

return entity;

}

响应的数据为:

{"entity":{"id":1,"name":" sss 2","price":222.0}}

4.如果加上param参数,则返回的是

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json">

<param name="root">entity</param>

</result>

</action>

结果为:{"id":1,"name":" sss 2","price":222.0}

5.如果在action中的数据为:

private List<Goods> entities;

private Goods entity;

public List<Goods> getEntities() {

return entities;

}

public Goods getEntity() {

return entity;

}

在xml文件中的数据为:

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json">

<param name="root">entity</param>

</result>

</action>

则返回的只是entity对应的实体

{"id":1,"name":" sss 2","price":222.0}

6.如果为:

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json">

<param name="root">entities</param>

</result>

</action>

则返回的只是entities的实体,为

[{"id":2,"name":" sss ","price":222.0},{"id":1,"name":" sss ","price":222.0},{"id":3,"name":" sss ","price":222.0},{"id":4,"name":" sss ","price":222.0},{"id":5,"name":" sss ","price":222.0}]

7.如果在xml中的文件为:

<action name="goods" class="cn.csdn.hr.action.GoodsAction">

<result type="json">

<param name="root">entities,entity</param>

</result>

</action>

那么返回的数据为:

{"id":1,"name":" sss 2","price":222.0}

也就是谁在后面返回的是哪个

.8。如果xml数据为:

<result type="json">

<param name="includeProperties">entities</param>

</result>

返回的结果为:

{"entities":[]}

9.如果xml中数据为:

<result type="json">

<param name="includeProperties">entities\[\d+\].name</param>

</result>

返回的数据为:

{"entities":[{"name":" sss 1 "},{"name":" sss 2"},{"name":" sss 3 "},{"name":" sss 4 "},{"name":" sss 5 "}]}

10.如果xml中数据为:

<result type="json">

<param name="includeProperties">^entities\[\d+\]\.name</param>

</result>

返回的数据为:

{"entities":[{"name":" sss 1 "},{"name":" sss 2"},{"name":" sss 3 "},{"name":" sss 4 "},{"name":" sss 5 "}]}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐