【问题标题】:Replace a string parameter within a CDATA parameter替换 CDATA 参数中的字符串参数
【发布时间】:2017-04-28 16:28:33
【问题描述】:

给定一个 textFieldExpression ![CDATA[$P{pageNumber}]],例如我从 .properties 文件中读取的 pageNumber="Page {0} from {1}",我想用报告变量 $V{PAGE_NUMBER}$V{PAGE_COUNT} 替换参数 {0}{1}分别。请问我怎样才能做到这一点?

【问题讨论】:

  • 您可以跳过读取属性文件的步骤并使用此表达式:<textFieldExpression class="java.lang.String"><![CDATA[msg($R{text.pageNumber}, $V{PAGE_NUMBER}, $V{PAGE_COUNT})]]></textFieldExpression>。描述是here

标签: jasper-reports


【解决方案1】:

这可以用纯Java来实现:

<textFieldExpression><![CDATA[java.text.MessageFormat.format($P{pageNumber}, new Object[] {$V{PAGE_NUMBER},$V{PAGE_COUNT}})]]></textFieldExpression>

但是,如果您尝试将报告国际化,则无需手动读取密钥和填充参数,您可以按照@AlexK 提到的那样使用内置的resourceBundle 支持,方法如下: JasperReports i18n Sample.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多