json struts2插件中的includeProperties不起作用

时间:2013-01-21 06:24:29

标签: json struts2 struts2-json-plugin

我正在使用struts2-json-plugin-2.2.3.jar。并尝试序列化类的filterList属性,如下所示:

struts.xml代码

<action name="jsonUserFilterListAction"  class="com.my.fitnessb.actions.UserArticlesAction" method="filterList">
        <result  name="success" type="json">
            <param name="includeProperties">filterList</param>
        </result>
 </action>

动作类

public class UserArticlesAction extends ActionSupport implements SessionAware, ServletRequestAware {

  private List<FilterType> filterList;
  HttpServletRequest request;

  public String filterList() {
    filterList = new ArrayList<FilterType>();
    filterList.add(new FilterType(10, "Latest Articles"));
    filterList.add(new FilterType(1, "Trending Articles"));
    filterList.add(new FilterType(2, "Top Rated Articles"));
    filterList.add(new FilterType(3, "Most Viewd Atricles"));
    filterList.add(new FilterType(4, "All Atricles"));
    return SUCCESS;
  }
  //setter & getter of filterList
}

但是我无法获得FilterType类的这个属性。

4 个答案:

答案 0 :(得分:6)

假设FilterType中的字段名为iddesc

尝试

<param name="includeProperties">
filterList\[\d+\]\.id,
filterList\[\d+\]\.desc
</param>

答案 1 :(得分:3)

Struts2-json插件将在动作类中隐藏所有动作属性。

我使用struts2-json-plugin遇到了一个问题。尽管plugin-doc显示了includeProperties参数的工作示例,但它从来没有对我有用,也从未经过如此多的试验和谷歌搜索。所以我不得不使用excludeProperties来删除序列化的非必需内容,而不是指定我要序列化的内容。

答案 2 :(得分:0)

如果更喜欢注释风格

@ParentPackage("json-default")
@Namespace("/")
@ResultPath(value = "/")
@Results({  @Result(name="firstDir",type="json"
,params = {"includeProperties","fileList\\[\\d+\\]"}
) })

fileList = new ArrayList<String>();
        for (File img : folder.listFiles()) {
            fileList.add(img.getName());
        }
return "firstDir"

答案 3 :(得分:0)

您可以尝试以下方法:

<param name="includeProperties">
    filterList.*
</param>
相关问题