我得到了这个文本字段表达式:
"declared in the name of <style isBold=\"true\" isUnderlined=\"true\"> " + $F{owner.name} + "</style>"
owner.name
包含以下字符:.
和&
当我在Java中运行代码时,输出与表达式相同,粗体和下划线不起作用。请注意,我已经检查了文本字段属性中的isStyledText
。
答案 0 :(得分:1)
样式化文本被解析为XML,因此如果要在样式化文本中包含文字值,则必须根据XML规则对其进行转义。在您的情况下,问题是&
,它不能在XML中显示。
转义XML值的一种方法是使用JasperReports的JRStringUtil
,如下所示:
<textFieldExpression><![CDATA["declared in the name of <style isBold=\"true\" isUnderlined=\"true\"> " + net.sf.jasperreports.engine.util.JRStringUtil.xmlEncode($F{owner.name}) + "</style>"]]></textFieldExpression>