2

皆さんへの簡単な質問です。

管理対象Beanに文字列として格納されているリソースキーがあり、特定のマップされたリソースバンドルの値に解決されるようにしたいと思います。

これが私が始めたものです:

<h:outputText value="#{msgs[bean.someVal]}"/>

someValがnullの場合、次の例外が発生することにすぐに気付きました。

javax.el.PropertyNotFoundException: /webpage.xhtml at line 118 and column 188 value="#{msgs[bean.someVal]}": Property '' not found on type java.util.PropertyResourceBundle

だから私はこのような三元を設定しようとしました:

<h:outputText value="#{bean.someVal == null ? '' : msgs[bean.someVal]}"/>

しかし、新しい値を引用するだけで同じエラーが発生しました。

Tomcat6でJSF2.0(Apache)を実行しています。

誰かアイデアがありますか?私はこれにかなり困惑しています。

さらに情報が必要な場合はお知らせください。これで十分だと思います。これは私がやっているのは馬鹿げたことだと思います;)

4

1 に答える 1

2

プロパティ''が見つかりません

空の文字列があります。空の文字列は。と同じではありませんnull

empty代わりにチェックを使用してください。値が空の文字列でないかどうかnull を確認します。

<h:outputText value="#{empty bean.someVal ? '' : msgs[bean.someVal]}" />

ちなみに、別の方法は、例外をスローせず、代わりにメソッドを返すか空にするカスタムResourceBundle実装を提供することです。#{msgs}nullStringhandleGetObject()

于 2012-05-24T02:18:44.240 に答える