Struts2 插件版本 2.3.x的文档说可以设置 includeProperties 参数,其行为如下:
可以将逗号分隔的正则表达式列表传递给 JSON 结果,以限制将要序列化的属性。只有与这些正则表达式匹配的属性才会包含在序列化输出中。
但是,从我自己的测试来看,情况似乎并非如此。无论如何,它似乎并不像人们期望的那样支持完整的正则表达式语法(即可以与java.util.regex.Pattern一起使用的完整表达式集)。
举一个简单的例子,我们可能想对一个组使用贪婪的可选量词(“?”)。具体来说,这种模式:^(items\\[\\d+\\]\\.)?userName$
行不通;它被忽略了,你includeProperties
最终成为null
.
但是,如果您只是使用^items\\[\\d+\\]\\.userName$
它,那么它就可以工作(模式被识别并添加)。查看org.apache.struts2.json.JSONUtil
源代码显示有许多自定义代码用于处理模式。
JSON 插件文档中没有提到只支持一个特殊的正则表达式子集。这个插件支持或不支持哪些类型的表达式的故事是什么?