22

この質問では、次のようなことが可能であると指摘しています。

message.myMessage = This message is for {0} in {1}

しかし、パラメータを渡す方法がわかりません

MESSAGES.getString("message.myMessage", "foor", "bar")

しかし、残念ながら getString は他のパラメーターを取ることを知ることができません。

4

3 に答える 3

32

MessageFormatについて考えていると思いますか?もしそうなら、それはちょうどこれです:

String s = MessageFormat.format("This message is for {0} in {1}", "foo", "bar");

またはプロパティから:

Properties p = new Properties();
p.setProperty("messages.myMessage", "This message is for {0} in {1}");
String s = MessageFormat.format(
    p.getProperty("messages.myMessage"), "foo", "bar");
于 2013-03-24T23:53:42.987 に答える
12

これを試してください:

String message = "This message is for {0} in {1}.";
String result = MessageFormat.format(message, "me", "the next morning");
System.out.println(result);

( java.text.MessageFormat;)

またはJSFで:

<h:outputFormat value="This message is for {0} in {1}.">
    <f:param value="me">
    <f:param value="the next morning">
</h:outputFormat>
于 2013-03-24T23:53:06.330 に答える
0

文字列配列を使用できます。

String[] params = new String[2]; 
params[0] = "This is your text including parameters";
params[1] = "This is your second text including parameters";

JSF を使用している場合は、警告テキストとしてバッキング Bean からこの方法でテキストに Array を渡します。

JsfUtil.addWarn("A_MSG_TITLE_IN_PROPERTIES_FILE", params);

そして、次の行をローカル プロパティ ファイルに挿入します。

A_MSG_TITLE_IN_PROPERTIES_FILE = Hello {0} and {1} 

したがって、出力は次のようになります。

こんにちは これはパラメータを含むテキストです これはパラメータを含む2番目のテキストです

于 2022-02-04T06:48:28.783 に答える