1

UI に自明でない終了メニューがあります。このようにループで名前が付けられたそのアイテム:

ループスタート

<li>
<h:commandLink action="#{menuItem.getGlobalTransitionName()}">#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,null)}
</h:commandLink>
</li>

ループエンド

上記で実行されたresourceBundleへの呼び出し。デフォルトのロケールが設定されています-null値にハードコードされているため、常に解決されEnます:

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,null)}

私が試したこと:

1.これにより、解析エラーが発生します。

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,${externalContext.locale})}

2.これもエラーを引き起こします:

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,#{resourceBundle.locale})}

そこに実際に使用されているロケールを渡すにはどうすればよいですか?

4

1 に答える 1

1

EL 式のネストは実際には無効です。そうしないでください。さらに、メソッドExternalContextはありませんgetLocale()#{facesContext.viewRoot.locale}代わりに使用したい。

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,facesContext.viewRoot.locale)}
于 2011-05-27T11:06:22.977 に答える