【发布时间】:2012-07-21 21:33:56
【问题描述】:
在我的 JSF 项目中,我有这样的东西
<h:outputText value="#{msg[foo]}" />
其中 msg 是我的 ResourceBundle,foo 是属性标识符的变量,例如包含 label.car,因此代码将返回 car 或 Auto(国际化)。
问题:
如果 foo 设置为 ResourceBundle 中不存在的属性标识符,比如说 boat,那么应用程序当然会崩溃并显示 javax.el.PropertyNotFoundException .
在 Spring 中,有一种方法可以使用默认消息将其作为后备来处理..
<spring:message code="${foo}" text="${foo}" />
(返回标识符本身而不是它的国际化值)
..我在 JSF 中无法做到这一点。
任何提示在 JSF 中如何实现类似的事情?谢谢!
//更新: - Apache Tomcat/6.0.29 - Apache MyFaces-2 - PrimeFaces 3.3 - tomcat-maven-plugin:1.1 - Java 版本号:1.7.0_05 - Hibernate 3.5.6-Final
【问题讨论】:
-
try "#{msg.fooNew}" 这应该给你 %%fooNew%% ,这就是你要找的?
-
@Daniel:我不这么认为。我想要 foo 的内容只是没有像 foo 的内容那样命名的属性。顺便说一句:通过 getter(。而不是 [])调用属性将不起作用,因为 ressourcePropperties 没有 getter ..)
-
确定有 getter ,这里有一个在线参考 ... mkyong.com/jsf2/jsf-2-0-and-resource-bundles-example 查找示例 1
-
啊,好吧,是的。但我在'For a key that has a dot'。作为名称的案例... ;)
-
您能否发布堆栈跟踪并提及使用的确切 JSF impl/version?这种行为很奇怪,它应该打印
???foo???。
标签: java jsf web-applications jsf-2 el