Перехватчик 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>>,

0 ответов

Другие вопросы по тегам