我需要在渲染的 JSP 代码中保留属性文件中的大括号。可能吗?
我尝试过以下选项:\{
, '{
, {{
, '{'
, /{
, 但没有帮助。
在运行时,我得到一个异常:
java.lang.IllegalArgumentException:无法解析参数号
问题是 struts 将 处理{}
为运行时值的占位符。非常感谢任何帮助。
见这里http://struts.apache.org/2.x/docs/how-to-escape-special-chars-in-resource-bundles.html
使用'{'
和'}'
逃脱。
只是重新阅读你的问题看起来没有帮助。
就在 10 分钟前,我跳到了这个问题上。这是我的尝试:使用 '{' 而不是 '{'。(参考: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}'''”。
这意味着您可能应该尝试像这样调整您的花括号'''{'
。
由于单引号在到达之前'
总是加倍,因此您无法按照@Mihai Toader的建议进行生成。或任何其他奇数计数所需的struts
MessageFormat
'''{'
MessageFormat
我最终使用了带有值的参数{
和}
my.property = You have ${0}count{1} unread messages
如果你提供参数值{
和}
,你会得到这个
You have ${count} unread messages