2016-08-08 41 views
0

我得到這個文本字段表達:樣式的文本是無效

"declared in the name of <style isBold=\"true\" isUnderlined=\"true\"> " + $F{owner.name} + "</style>" 

owner.name包含的字符如:.&

當我運行我的Java代碼,輸出是一樣的表達,加粗下劃線沒有工作。不要說我已經在文本字段的屬性中檢查了isStyledText

+1

你應該張貼整個文本框的聲明 –

+0

有沒有拋出錯誤? –

+0

您確定可以將'style'元素放入文本字​​段表達式嗎?到目前爲止,我只是在應用於整個內容的表達式旁邊的文本字段中使用'style'元素。 – mkl

回答

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>