Ich lief heute ein Problem in dem folgenden Code Frühling mit:Was entspricht dem Muster.quote() für MessageFormat?
String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
Dient die angezeigten Titel einer Reihe von Registerkarten am oberen Rand unserer Seite (eine Instanz von uPortal) zu erhalten. Das Problem ist, dass wenn tabName
ein einfaches Anführungszeichen enthält, wird es automatisch aus dem Ergebnis entfernt. Zum Beispiel What's For Lunch
wird Whats For Lunch
.
Ich habe herausgefunden warum und es ist, weil der 3. Parameter in dieser Methode von dem Format sein soll, das in java.text.MessageFormat spezifiziert wird. 2 einfache Anführungszeichen sind erforderlich.
Da wir keine Parameter mit dem Format übergeben, kann ich alle Sonderzeichen in der tabName
sicher entkommen, bevor Sie es als 3. Parameter übergeben. Ich könnte die einzelnen Anführungszeichen hier manuell durch 2 einfache Anführungszeichen ersetzen, aber was ich wirklich gerne hätte, wäre etwas wie Pattern.quote()
, nur für die MessageFormat
Sprache, die garantiert alle entkommen würde. Gibt es so etwas?
Gibt es nicht, aber Sie können sicher die '' '→' '' 'Substitution machen, dann schließen Sie das ganze Ding in einfache Anführungszeichen ein. Doppelte Anführungszeichen werden auch innerhalb von Text mit einem Anführungszeichen richtig interpretiert. – VGR
Danke, wenn Sie dies als Antwort hinzufügen, werde ich es akzeptieren. – xdhmoore