Reputation: 209
I am using struts2-json-plugin-2.2.3.jar
. and trying to serialize filterList
property of class like this:
struts.xml
code
<action name="jsonUserFilterListAction" class="com.my.fitnessb.actions.UserArticlesAction" method="filterList">
<result name="success" type="json">
<param name="includeProperties">filterList</param>
</result>
</action>
Action class
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
}
but I'm not able to get this property of FilterType class.
Upvotes: 7
Views: 4479
Reputation: 123
You may try this:
<param name="includeProperties">
filterList.*
</param>
Upvotes: 0
Reputation: 709
In case prefer the annotation flavor
@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"
Upvotes: 0
Reputation: 4433
Assuming the fields in your FilterType
are named id
and desc
Try
<param name="includeProperties">
filterList\[\d+\]\.id,
filterList\[\d+\]\.desc
</param>
Upvotes: 7
Reputation: 2770
Struts2-json plugin will seralize your all action attributes in the action class.
Its a problem that I had faced using struts2-json-plugin. Even though the plugin-doc show a working examples for includeProperties
parameter, it never worked for me and never did after so many trials and googling. So i had to use excludeProperties
to remove non-required contents from being serialized, instead of specifying what I want to serialize.
Upvotes: 3