Struts 2 jquery sj:select 和 json 结果

2023-09-24Java开发问题
1

本文介绍了Struts 2 jquery sj:select 和 json 结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在使用 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 插件会序列化所有正在运行的属性(anotherListanString 等...),如下所示

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

推荐答案

您可以使用 includeProperties 参数来获取 json 结果.例如

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 结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13