Struts2 JSON插件includeProperties - 不是完整的正则表达式支持?

时间:2013-05-29 20:11:22

标签: java regex struts2 struts2-json-plugin

Struts2插件版本2.3.x的

The documentation表示可以设置includeProperties参数,其行为如下:

  

可以将以逗号分隔的正则表达式列表传递给   JSON结果限制将序列化哪些属性。只要   将包含与任何这些正则表达式匹配的属性   在序列化输出中。

但是,根据我自己的测试,情况似乎并非如此。无论如何,它似乎不像人们所期望的那样支持完整的正则表达式语法(即可以与java.util.regex.Pattern一起使用的完整表达式集。)

举一个简单的例子,我们可能想要使用贪婪的可选量词("?")和一个组。为了使事情具体化,这种模式:^(items\\[\\d+\\]\\.)?userName$不起作用;它被忽略,您的includeProperties最终成为null

但是,如果您只使用^items\\[\\d+\\]\\.userName$,那么它可以正常工作(模式被识别并添加)。查看org.apache.struts2.json.JSONUtil源代码显示,为处理模式而编写了大量自定义代码。

JSON插件文档中未提及仅支持正则表达式的特殊子集。这个插件支持或不支持哪些类型的表达式的故事是什么?

0 个答案:

没有答案