Перехватчик Struts 2 JSON для пользовательских карт
У меня есть следующие 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. Struts2 предоставляет нам JSON-перехватчик, где я могу специально фильтровать параметры для сортировки.
Ниже приведена конфигурация в XML-файле Struts
<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
в списке.
Однако для ключа карты и значения я не могу применить любой такой шаблон регулярных выражений, чтобы отфильтровать нужные атрибуты. (Скажем, для ключа карты Category
, Я нуждаюсь id
а также title
тогда как для каждого значения User
Мне нужно отфильтровать id
, name
только). Пожалуйста, предложите соответствующий шаблон регулярного выражения для применения на Map<Category, List<User>>
,