如果报告中包含参数,请说foo
的值为bar
,我希望以下内容可以打印bar
(如果支持参数),或$P{foo}
它只支持静态文本。
AutoText showBatchAutoText = new AutoText("$P{foo}",
AutoText.POSITION_HEADER,
HorizontalBandAlignment.CENTER);
相反,它打印((java.lang.String)parameter_foo.getValue())
,暗示它在场上做了某种逻辑......
应该有用吗?我是否滥用了“消息”类型的自动图文集?
答案 0 :(得分:0)
DynamicJasper在将字符串发送到Jasper之前将其包装在引号中。所以, sql injection attack 样式,你可以用转义引号绕过它。
AutoText showBatchAutoText = new AutoText("\" + $P{foo} + \"",
AutoText.POSITION_HEADER,
HorizontalBandAlignment.CENTER);
黑客攻击,但是......它可以解决问题。