2011-07-01 4 views
0

javaにorg.springframework.context.support.ResourceBundleMessageSourceパッケージに相当するVBがありますか?メッセージプロパティファイル

私はこの質問で春に焦点を当てていません。私はあなたがhat javaパッケージでできるような変数を渡すことができるメッセージプロパティファイルを持つ方法があるかどうかを知りたい。

ここに私がしたいことの例があります。プロパティで

次の行したファイル:ソースコードで

success.message = Successfully created document with Trans No. {0} 

このラインを持っている:

ResourceBundleMessageSource.getMessage("success.message",new String[] {transObject.getTransId()}, null)); 

このコードは、プロパティファイルを使用success.messageを見つけ、getTransId().から変数を渡し

すべてのエラーメッセージを一元管理するためにこれを実行します。私のコード全体にハードコーディングされたメッセージはありません。

VBには何か同等のものがありますか?

答えて

2

1つの解決策は、リソースファイルを使用することです。プロジェクトを右クリックし、プロジェクトプロパティを選択してリソースを追加します。次に、リソースをクリックし、新しいリソースを追加します。

質問の例: リソースでは、上記のようにSAM命名規則に従うことができません。私たちは '。'を置き換える必要があります。 '_':ie:success.message - > success_message リソースファイルで '。'が許可されていません。キー名で

次に、リソースファイルにメッセージが必要です。 "{0}はファイルを正常に提出しました。" 変数のプレースホルダとして{0} .... {x}を使用します。

リソース]タブの最初の行は次のようになります。プレースホルダの交換を行うために、この

success_message | {0} successfully submitted the file. 

機能のようになります:あなたのコードで今すぐ

Public Shared Function messageRetriver(ByVal message As String, ByVal variables As String()) As String 
    Dim i As Integer 
    Dim pattern As String 
    For i = 0 To variables.Length - 1 
     pattern = "\x7B" & i & "\x7D" 
     Dim myRegex As New Regex(pattern) 
     message = myRegex.Replace(message, variables(i)) 
    Next 
    Return message 
End Function 

をあなたのすべてこの関数をリソースと変数の文字列配列を渡して呼び出す必要があります。

Utility.messageRetriver(My.Resources.success_message, {"My Program"}) 

これはすべきことです。 私はこの情報をコンパイルするためのリソースとしてthisを使用しました。