我正在使用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类的这个属性。
答案 0 :(得分:6)
假设FilterType
中的字段名为id
且desc
尝试
<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>