2

Struts2 插件版本 2.3.x的文档说可以设置 includeProperties 参数,其行为如下:

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

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

举一个简单的例子,我们可能想对一个组使用贪婪的可选量词(“?”)。具体来说,这种模式:^(items\\[\\d+\\]\\.)?userName$行不通;它被忽略了,你includeProperties最终成为null.

但是,如果您只是使用^items\\[\\d+\\]\\.userName$它,那么它就可以工作(模式被识别并添加)。查看org.apache.struts2.json.JSONUtil源代码显示有许多自定义代码用于处理模式。

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

4

0 回答 0