クラスパスからプロパティファイルをロードするf:loadBundleがあります。
<f:loadBundle basename="com.xxx.ui.messages" var="msg" />
後で、次の構文でリソースバンドルからのメッセージを使用しようとしています。
<h:outputText value="test message: #{msg.does_not_exist} --"/>
以前はJSFが「NOTFOUND」メッセージを出力していましたが、現在は例外をスローしています。仕様は変更されましたか、それともこれは正しい動作ですか?
ELリゾルバーとしてJUEL2.2.4でMojarra2.1.9を使用しています。スタックトレースは次のとおりです。
javax.el.PropertyNotFoundException: /WEB-INF/xxx.xhtml @10,70 value="test message: #{msg.does_not_exist} --": Property 'does_not_exist' not found on type java.util.PropertyResourceBundle
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:169)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
編集:正しい動作はここで確認できます:http://javaserverfaces.java.net/nonav/docs/2.0/vdldocs/facelets/f/loadBundle.html
(これは、リテラル文字列??? KEY ???がマップから返されることを意味します。ここで、KEYは、MissingResourceExceptionがスローされるのではなく、マップで検索されるキーです)
編集:JUELを削除した後でも同じ問題