簡體   English   中英

如何在 Struts 1.2 中的 .properties 文件中轉義大括號

[英]How to escape curly brackets in .properties file in Struts 1.2

我需要在渲染的 JSP 代碼中保留屬性文件中的大括號。 有可能嗎?

我嘗試過以下選項: \\{ , '{ , {{ , '{' , /{ ,但沒有幫助。

在運行時,我得到一個異常:

java.lang.IllegalArgumentException:無法解析參數編號

問題在於 struts 將{}作為運行時值的占位符處理。 非常感謝任何幫助。

見這里http://struts.apache.org/2.x/docs/how-to-escape-special-chars-in-resource-bundles.html

使用'{''}'進行轉義。


重新閱讀您的問題似乎沒有幫助。

就在 10 分鍾前,我跳到了這個問題。 這是我的嘗試:把“&#123”而不是“{”。 (參考: http : //www.asciitable.com/

不要使用 Oct 或 Hex 代碼,因為 Java 會在實際讀取密鑰之前將這些數字解析為 {; 因此,它會導致同樣的問題。 只有 HTML 代碼可以工作,因為 Java 不會解析它,但 JSP 頁面會

從 MessageFormat 規范: http : //download.oracle.com/javase/1.4.2/docs/api/java/text/MessageFormat.html

在字符串中,“''”代表單引號。 QuotedString 可以包含除單引號之外的任意字符; 周圍的單引號被刪除。 UnquotedString 可以包含除單引號和左大括號之外的任意字符。 因此,應生成格式化消息“'{0}'”的字符串可以寫為“'''{'0}''”或“'''{0}'''”。

這意味着您可能應該嘗試像這樣'''{'完全使用大括號。

由於單引號'在到達MessageFormat之前總是被struts加倍,因此您不能按照@Mihai Toader 的建議生成'''{' MessageFormat所需的任何其他奇數計數

我最終使用了值為{}參數

my.property = You have ${0}count{1} unread messages

如果你提供參數值{} ,你會得到這個

You have ${count} unread messages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM