struts2中json的两个问题

问题1:
每个Action类都可以指定@ParentPackage,当返回值是json类型的时候,就需要在这个Action的class上加上 @ParentPackage("json-default"),再指定@Result的type="json",然后这个Action中的方法的返回结果就是json的了,返回html的action就不需要这些设置,通常一个业务对象会有一些返回json的action和非json的action,不知道有没有办法把这两种操作整在一个class里面

问题2:
json类型的返回值,可以设置includeProperties,让符合设置正则表达式的属性序列化,这个includeProperties我需要根据实际情况计算,于是我设置result的params如下
params={"includeProperties", "${myInculdeProperties}" .... 但是设置不上去,不知道各位有没有遇到过这种问题

[b]问题补充:[/b]
谢谢 yourgame 的回复,我的action配置使用的是annotation,主要是想动态去设置includeProperties,比如这个用户的请求是“result”,另一个用户的请求是“result2”。

不过现在问题2已经解决了,在action的方法中,直接返回JSONResult就可以了

2个回答

JSONResult 看来你使用的不是json-plugin.jar的功能了

[quote]比如这个用户的请求是“result”,另一个用户的请求是“result2”。 [/quote]
你可以变通一下的,你可以配置两个Action ,他们指向的是同一个方法,
例如:
[code="xml"]




page

true

result








page

true

result2




[/code]
他们都是指向getFiles方法,但是他们的json配置有区别,一个是result,另一个是result2

然后你可以根据用户来判断执行哪一个方法就可以了.:)

[code="xml"]


page
true
result


[/code]
上面配置对应下面的Action类中的一个属性page
[code="java"]
public class Action{
private Page page;
//setter...getter...
}
//Page对象如下
public class Page{
private List result;//有与配置中指定了这个属性,所以json插件会把这个字段的value计算成json字符串
private List result2;
//setter...getter...
}
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问