は私が春を使用して、次のコードで、今日の問題に遭遇した:これは我々のサイト(uPortalのインスタンス)の上部に一連のタブの表示タイトルを取得するために使用されMessageFormatのPattern.quote()に相当するものは何ですか?
String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
。問題は、tabName
に一重引用符が含まれている場合、結果から自動的に削除されるということです。例えば、What's For Lunch
はWhats For Lunch
になります。
私はその理由を追跡しました。そのメソッドの3番目のパラメータは、java.text.MessageFormatで指定された形式になっているはずです。 2つの単一引用符が必要です。
フォーマットでパラメータを渡していないので、tabName
の特殊文字を3番目のパラメータとして渡す前に安全にエスケープできます。私は手動で二重引用符で一重引用符を置き換えることができましたが、私が本当に好きなのは、MessageFormat
言語の場合にのみPattern.quote()
のようなもので、すべてのエスケープ処理を保証します。このようなことは何ですか?
'' '→' '' '置換を安全に行うことができます。次に、全体を一重引用符で囲みます。二重引用符は、一重引用符で囲まれたテキストの中でも正しく解釈されます。 – VGR
ありがとう、これを回答として追加すると、私はそれを受け入れます。 – xdhmoore