6

我需要在渲染的 JSP 代码中保留属性文件中的大括号。可能吗?

我尝试过以下选项:\{, '{, {{, '{', /{, 但没有帮助。

在运行时,我得到一个异常:

java.lang.IllegalArgumentException:无法解析参数号

问题是 struts 将 处理{}为运行时值的占位符。非常感谢任何帮助。

4

4 回答 4

9

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

使用'{''}'逃脱。


只是重新阅读你的问题看起来没有帮助。

于 2011-01-07T11:51:00.533 回答
1

就在 10 分钟前,我跳到了这个问题上。这是我的尝试:使用 '{' 而不是 '{'。(参考:http ://www.asciitable.com/ )

不要使用 Oct 或 Hex 代码,因为 Java 会在实际读取密钥之前将这些数字解析为 {;因此,它会导致同样的问题。只有 HTML 代码可以工作,因为 Java 不会解析它,但 JSP 页面会

于 2012-10-17T06:52:45.497 回答
0

来自 MessageFormat 规范:http: //download.oracle.com/javase/1.4.2/docs/api/java/text/MessageFormat.html

在字符串中,"''" 表示单引号。QuotedString 可以包含除单引号外的任意字符;周围的单引号被删除。UnquotedString 可以包含除单引号和左大括号外的任意字符。因此,应该导致格式化消息“'{0}'”的字符串可以写成“'''{'0}''”或“'''{0}'''”。

这意味着您可能应该尝试像这样调整您的花括号'''{'

于 2011-01-07T12:56:50.150 回答
0

由于单引号在到达之前'总是加倍,因此您无法按照@Mihai Toader的建议进行生成。或任何其他奇数计数所需的strutsMessageFormat'''{'MessageFormat

我最终使用了带有值的参数{}

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

如果你提供参数值{},你会得到这个

You have ${count} unread messages
于 2020-07-10T19:09:00.020 回答