如何在 Struts 1.2 中转义 .properties 文件中的大括号

发布于 2024-10-10 19:45:22 字数 308 浏览 6 评论 0原文

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

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

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

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

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

I have a requirement to retain the curly brackets from properties file in my rendered JSP code. Is it possible?

I have tried options like: \{, '{, {{, '{', /{, but no help.

At runtime, I get an exception:

java.lang.IllegalArgumentException: can't parse argument number

The problem is that struts processes the {} as a placeholder for a runtime value. Any help greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

白色秋天 2024-10-17 19:45:22

请参阅此处 http:// /struts.apache.org/2.x/docs/how-to-escape-special-chars-in-resource-bundles.html

使用 '{'' }' 来逃避。


重新阅读您的问题似乎没有帮助。

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

use '{' and '}' to escape.


Just re-read your question looks like it didn't help.

风追烟花雨 2024-10-17 19:45:22

10 分钟前我就跳到这个问题了。这是我的尝试:用“{”代替“{”。 (参考:http://www.asciitable.com/

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

I jumped to this problem just 10 minutes ago. This is my try: put '{' instead of '{'. (Reference: http://www.asciitable.com/)

Don't use Oct or Hex code since Java will parse these numbers into { before actually reading the key; therefore, it will lead to the same problem. Only HTML code will work, since Java will not parse it, but the JSP page will

£烟消云散 2024-10-17 19:45:22

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

在字符串中,“''”表示单引号。 QuotedString 可以
包含任意字符,除了
单引号;周边单人
引号被删除。不带引号的字符串
可以包含任意字符
除了单引号和左卷曲
括号。因此,一个字符串应该
结果是格式化的消息
“'{0}'”可以写成“'''{'0}''”
或“'''{0}'''”。

这意味着您可能应该尝试像这样 '''{' 那样关闭大括号。

From the MessageFormat spec: http://download.oracle.com/javase/1.4.2/docs/api/java/text/MessageFormat.html

Within a String, "''" represents a single quote. A QuotedString can
contain arbitrary characters except
single quotes; the surrounding single
quotes are removed. An UnquotedString
can contain arbitrary characters
except single quotes and left curly
brackets. Thus, a string that should
result in the formatted message
"'{0}'" can be written as "'''{'0}''"
or "'''{0}'''".

which means you should probably try to quite your curly braces like this '''{'.

德意的啸 2024-10-17 19:45:22

由于单引号 ' 在到达 MessageFormat 之前总是被 struts 加倍,因此您无法生成 '''{' 如@Mihai Toader建议。或 < 所需的任何其他奇数个数code>MessageFormat

我最终使用了值为 {} 的参数,

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

如果您提供参数值 {},你明白了

You have ${count} unread messages

Since single quote ' is always doubled by struts before it arrives into MessageFormat, you can not produce '''{' as suggested by @Mihai Toader. Or any other odd-numbered count of them required by MessageFormat

I have ended up using parameters with value { and }

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

If you supply parameter values { and }, you get this

You have ${count} unread messages
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文