JSF2 ResourceBundleLoader überschreiben?
-
02-10-2019 - |
Frage
ich brauche Ressource Nachrichten zu haben, die Ausdrücke enthalten EL gelöst werden, wenn sie von einem Resource geladen. Im Prinzip habe ich eine Reihe von Eigenschaften von Dateien mit dem Text enthalten. Einige der Text wie folgt aussehen wird:
Welcome = Willkommen # {userbean.name}
Die einzige Möglichkeit, die ich sehen kann dies zur Zeit arbeitet eine benutzerdefinierte taglib, so dass die Umsetzung anstatt zu sagen:
<f:loadBundle var="messages" basename="application.messages"/>
Ich würde verwenden müssen
<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}
ein Benutzer mit dem Benutzernamen „User1“ Da sollte dies Ausgang
Welcome User1
Meine Implementierung würde dann eine benutzerdefinierte Resource Klasse verwenden, die handleGetObject außer Kraft setzen würde, etc die ELResolver zu lösen Variablen verwenden .... Ideen? suggestings? Implementierungen, die bereits verfügbar sind?
Vielen Dank für Ihre Unterstützung.
Lösung
Rather nutzen <h:outputFormat>
und <f:param>
parametrisierte Text anzuzeigen. Es wird unterstützt durch die MessageFormat
API , die gleichen Regeln wie in der API javadoc beschrieben angewendet werden.
z.
welcomeText=Welcome {0}
mit
<h:outputFormat value="#{messages.welcomeText}">
<f:param value="#{userbean.name}" />
</h:outputFormat>
Da ist es für:)