Struts 2 jquery sj:select和json结果 [英] Struts 2 jquery sj:select and json result
问题描述
我正在使用struts 2 jquery插件选择组件。
I am using struts 2 jquery plugin select component.
行动是:
SampleAction {
private List<SampleVO> samples; //With setters and getters
private List<AnotherVO> anotherList; //With setters and getters
private String anString; //With setters and getters
@Action(value = "/loadSelect", results = {
@Result(name = "success", type = "json")})
public String loadSomeSamples() {
samples = new ArrayList<SampleVO>();
//Put some object in samples.
return SUCCESS;
}
}
jsp是
<sj:select list="samples" />
问题是json插件将序列化所有正在运行的属性( anotherList
, anString
etc ...),如下所示
The problem is that the json plugin will serialize all the properties in action ( anotherList
, anString
etc...), as below
{
"samples": {
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
},
"anString": "hello",
"anotherList": {
"0": {"prop1":"a","prop2":"b"},
"1": {"prop1":"c","prop2":"d"}
}
}
如果我改变了json root
参数到 samples
,然后 js:select
将无效,因为它找不到任何名为的列表返回的json中的 samples
。返回的json是:
If I change the json root
parameter to samples
, then the js:select
will not work as it can not find any list named samples
in the returned json. The returned json is:
{
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
}
这可以修复吗?有没有办法可以配置struts 2 json插件来生成
Can this be fixed ?! Is there any way I can configure struts 2 json plugin to generate
{
"samples": {
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
}
}
或者是否有任何struts 2 jquery插件接受的原因简单的json数组
Or is there any why struts 2 jquery plugin in accept the simple json array
推荐答案
你可以在json结果中使用 includeProperties
参数。例如
You can use includeProperties
parameter to json result. For example
@Result(type="json", params = {"includeProperties", "samples.*" })
另外一个样本
@Result(type="json", params = {"root", "samples", "wrapPrefix", "{\"samples\":", "wrapSuffix", "}"})
这篇关于Struts 2 jquery sj:select和json结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!