JSF ManagedBean-Properties und "Alias"

Veit

Mitglied
Hallo,

ich habe Werte in einer ManagedBean die ich in JSF anzeigen möchte. Da die Werte aus Entitys stammen, und nicht immer sinnvolle Werte zum Anzeigen beinhalten möchte ich dafür ein "Alias" einführen.

Zum Beispiel gibt es drei Prioriätsstufen, in der Datenbank als Integer mit "1","2","3" gespeichert. Im Frontend möchte ich aber "hoch", "mittel" und "niedrig" im einem outputText-Element anzeigen.

Wie geht das am Schnellsten?

Vielen Dank!
 
Hallo,

zum einen würde ich die Werte dann nicht als Integer ablegen sondern in Form eines Enums (der dann wieder gemapped wird) aber zur Anzeige in JSF gibt es Converter ....die haben genau die Aufgabe von einer Form in die andere Umzuwandeln...

Code:
<outputText value="#{wert}">
  <f:converter converterId="DerConverter" />
</outputText>

Wichtig: Der Converter muss in der Faces-config.xml registriert werden (zumindest in JSF 1.2 in 2.0 weiß ich nicht ob es notwendig ist oder nicht!).


Gruß
Karl Heinz Marbaise
 
In JSF 2 kann der Converter in der faces-config.xml registriert werden oder über eine Annotation bekannt gemacht werden:

Java:
@FacesConverter( value="MyConverter" )
public class MyConverter implements Converter {
...
}
 
Der Converter war mir bekannt, hab allerdings auf eine elegantere Lösung gehofft. Gut: Eine faulere 😉.
Vielen Dank euch beiden.
 
In dem Fall bietet sich die h😱utputFormat Komponente an und um das ganze Mehrsprachig zu machen würde ich es mit einem Eintrag in der message property Datei kombinieren:

Java:
<h:outputFormat value="#{msg.formatPrio}">
<f:param value="#{wert}"/> 
</h:outputFormat>

Mit JSF 2.0 gibt es die Möglichkeit eine
Java:
 choice
Anweisung anzugeben:

message_de.properties
Java:
formatPrio=Die Prio ist: {0,choice,1#hoch|2#mittel|3#niedrig}

Das ganze wird als case Anweisung interpretiert.

Greetz
 

Zurück
Oben