用于自定义地图的Struts 2 JSON拦截器

时间:2013-11-19 13:18:12

标签: java regex json struts2 struts2-json-plugin

我关注了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,我需要idtitle,而对于每个值User,我需要过滤掉id,{{仅限1}}。请建议在name上应用适当的正则表达式模式。

0 个答案:

没有答案