我关注了POJO的
public class Category {
private Integer id;
private String title;
private String description;
//many more attributes below
}
public class User {
private Integer id;
private String name;
private String address;
//many more attributes below
}
public class MyAction extends ActionSupport {
//list of objects
List<Category> categories;
//Complex Map
private Map<Category, List<User>> categorizedUsers;
//getters and setters
@Override
public String execute() {
//populate "categories" and "categorizedUsers" with some business logic
return SUCCESS;
}
}
我为此操作进行了AJAX调用,并期望JSON格式的数据(即“categories”和“categorizedUsers”)。 Struts2为我们提供了JSON拦截器,我可以专门过滤要被分类的参数。
以下是struts xml文件中的配置
<action name="mywidget" class="com.struts.action.MyAction">
<result type="json">
<param name="includeProperties">
^categories\[\d+\]\.id,
^categories\[\d+\]\.title,
</param>
</result>
</action>
两个POJO都包含很多属性,但使用"includeproperties"
,我能够过滤出列表中每个Category
的ID和标题。
但是对于map键和值,我无法应用任何此类正则表达式模式来过滤掉所需的属性。 (让我们说地图密钥Category
,我需要id
和title
,而对于每个值User
,我需要过滤掉id
,{{仅限1}}。请建议在name
上应用适当的正则表达式模式。