2017-01-03 5 views
0

リソースバンドルに自動埋め込みのプレースホルダが必要です。リソースバンドル内のプレースホルダ

私のアプリケーションのユーザーは、2つの可能な構成、たとえば "1"と "2"を持っています。この構成によっては、正しい値でエントリが返されます。

私は条件が可能であることは、知っている:リソースバンドルは、JSFでのアクセス用に構成されて

currentConfig=The configuration is currently the {0,choice,0#first|1#second} 

私の顔-config.xmlに。

は今、私はパラメータを指定せずにJSFでこの値を取得したい:

<h:outputText value="#{res.currentConfig}"/> 

ユーザが「1」に設定している場合、最初の値は、それ以外の場合は第二の値、返されるべきです。

with configuration "1": The configuration is currently the first. 
with configuration "2": The configuration is currently the second. 

これはJSFページとは別に実装できますか?

答えて

0

独自の方法でリソースバンドルからgetテキストを実装できます。たとえば、あなたは、いくつかのmanagedbeanで、このような方法を作成することができます。

public String getCongiurationText() { 
    FacesContext context = FacesContext.getCurrentInstance(); 
    Locale locale = context.getViewRoot().getLocale(); 
    ResourceBundle bundle = ResourceBundle.getBundle("messages", locale); 
    String msg = bundle.getString("currentConfig"); 

    Integer value = 1; 

    return MessageFormat.format(msg, getConfiguration()); 
} 

を次に、あなたのoutputTextに:

<h:outputText value="#{someUtilBean.getCongiurationText()}" /> 

をそのアプローチを使用すると、独立してJSFページのメッセージが表示されます。したがって、すべてのページで同じ方法を指定しますが、設定によっては異なるテキストが表示されます。構成はさまざまな方法で取得できますが、どのように処理するかによって異なります。

+0

ご返信ありがとうございますが、JSFファイルを変更したくありません。最良の方法は、リソースの呼び出しをJSFファイルからグローバルにカスタマイズすることです。 – Smoothi

関連する問題