JSF: Parameterübergabe an Properties-Datei aus JSF-Tag heraus?

Status
Nicht offen für weitere Antworten.

mmeyer1987

Mitglied
Moin,

Ich komme an einer Stelle auf meiner Faces-Seite nicht weiter. ???:L Ich habe eine Propertiesdatei, die folgende Zeile beinhaltet:

"valWertUng=Wert ungueltig {0}"

Die {0} steht für einen Platzhalter, den man in Java über

String text = properties.getProperty("valWertUng");
String dynText = "Testtext";
System.out.println(MessageFormat.format(text,dynTe xt));

ersetzen kann. Aber wie geht das auf einer JSF-Seite?

Da hole ich mir den Eintrag der Properties in einem JSF-Tag so:

value="#{mb_TexteBean.properties['valWertUng']}"

Habe ich da auch eine Chance, den Parameter zu übergeben? :bahnhof:

Vielen Dank!

Grüße!
 
Guten Morgen, 🙂

Danke für die Antwort erst einmal. Habe nun festgestellt, das ich dann wohl den Renderer, bzw. das Holen der Property erweitern muss. Ich nutze folgende Tag-Lib:

<%@ taglib uri="http://sourceforge.net/projects/jsf-comp/clientvalidators" prefix="cv" %>


Und in der jsp-Seite sieht das so aus:

<cv:lengthValidator style="messages"componentToValidate="inpDNBNr" display="dynamic"
errorMessage="#{mb_TexteBean.properties['valMaxLaenge1']}"max="9">
<f😛aram value="Apple"/>
</cv:lengthValidator>


Die Base des Validators holt sich zwar das ValueBinding, allerdings keine Child-Komponenten, um diese den Parametern zuzuweisen. Das werd ich wohl implementieren müssen. :autsch: Oder? Gibts einfachere Möglichkeiten?

Danke!

Grüße,

Manuel Meyer
 
Soweit ich weiss kannst du über die EL keine Parameter setzen. Du hast eigentliche 3 Optionen, wenn du diese Funktionalität mit den clientvalidators verwenden willst.
- Du initialisierst ein Bean, welches das Map-Interface implementiert (denn dann kannst du mittels ['xy'] Parameter übergeben - workaround), als Wert könntest du dann angeben 'valMaxLaenge1😛aram1😛aram2' und parst diesen String im Bean und löst dort die Message auf. Ist halt ein Workaround Ansatz.
- Du erweiterst die CV Implementation, so dass diese auch jsf param's bzw. attribute ausliest und gegebenenfalls beim MessageFormat einbezieht.
- Erstellung einer Custom EL Function, Weiss gerade nicht, wie das am besten geht, da du JSPs benutzt, mit Facelets ist es jedoch ganz einfach. Ansatzpunkt sind sicherlich die ganzen Resolver / Mapper der JSF API.
 
Moin gex,

Danke für die Hinweise. Habe es gestern bereits gelöst. Lese mir die Child-Komponenten aus (UIParameter) und dann gehts per search and replace durch den String um die Parameter meinen Platzhaltern zuzuweisen.


Danke für deine Hilfe!


Grüße!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben