7

我正在使用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

4 回答 4

7

假设您的字段FilterType已命名id并且desc

尝试

<param name="includeProperties">
filterList\[\d+\]\.id,
filterList\[\d+\]\.desc
</param>
于 2013-01-21T07:58:30.790 回答
3

Struts2-json 插件将序列化你在动作类中的所有动作属性。

这是我在使用 struts2-json-plugin 时遇到的问题。尽管 plugin-doc显示了includeProperties参数的工作示例,但它从未对我有用,并且在经过如此多的试验和谷歌搜索后也从未奏效。所以我不得不使用excludeProperties从序列化中删除不需要的内容,而不是指定我想要序列化的内容。

于 2013-01-21T07:21:45.590 回答
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"
于 2015-03-03T08:46:59.837 回答
0

你可以试试这个:

<param name="includeProperties">
    filterList.*
</param>
于 2019-02-14T12:07:07.680 回答