允许在 Jasper 报告表达式中使用 Java 类
出于安全考虑,Java 类被限制在 Jasper 报告中的报告表达式 (例如 <textFieldExpression>) 内。
要允许在这些表达式中使用特定的 Java 类,必须通过运行以下命令,将 net.sf.jasperreports.report.class.whitelist.custom.{arbitary_name} 特性添加到 jasperreports.properties 文件中:
xconfmanager -s net.sf.jasperreports.report.class.whitelist.custom.<{任意_名称}>=
"<逗号分隔 Java 类>" -t codebase/jasperreports.properties -p
其中:
• <{任意_名称}> - 可以是任何名称,不受特定值或预定义命名约定的约束。
• <逗号分隔 Java 类> - 定义报告表达式中允许使用的类的列表。可以使用逗号分隔列表来添加多个 Java 类名称。可以在 Java 类名称中使用通配符。有关详情,请参阅
通配符用法。
通配符用法
• 如果使用星号 (*) 作为通配符,可以包含任何类/包名称或是类/包名称的一部分。例如:
◦ net.sf.jasperreports. * 表示包含 net.sf.jasperreports 包 (子包除外) 中的任何类。
◦ net.sf.jasperreports.*Enum 表示包含 net.sf.jasperreports 包中以 Enum 结尾的任何类。
• 如果使用双星号 (**) 作为通配符,可以包含任何完全限定类名称或是完全限定类名称的一部分。例如:
◦ net.sf.jasperreports.** 表示包含 net.sf.jasperreports 包或其子包中的任何类。
◦ net.sf.jasperreports.**Enum 表示包含 net.sf.jasperreports 包或其子包中以 Enum 结尾的任何类。
◦ (**) 表示包含任何类。