Eine Möglichkeit, es zu tun sein wird, einige Methoden in Ihrem Backend-Bohnen hinzufügen:
- Erstellen Sie eine Methode, die eine
Map<Integer, String>
mit den Werten zurück in die selectOneMenu
anzuzeigen
- Initialisieren Sie die
selectItem
Werte mit einer Methode, die einen List<SelectItem>
aus dem vorherigen Map
- zurückgibt. Erstellen Sie eine Methode, die a zurückgibt
String
einen Elementnamen von einem Element-Wert (Integer) durch Abrufen in der Karte
Methode zum Abrufen der Karte
public Map<Integer, String> getMapOfItem() {
Map<Integer, String> mapOfItem = new HashMap<>();
// Initialize items
mapOfItem.put(0, "User");
mapOfItem.put(1, "Developer");
mapOfItem.put(2, "Sales");
mapOfItem.put(3, "Administrator");
mapOfItem.put(4, "Super user");
return mapOfItem;
}
Methode zur Initialisierung der selectItem
Werte
public List<SelectItem> getLstOfItem() {
List<SelectItem> lstOfItem = new ArrayList<>();
for (Map.Entry<Integer, String> entry : getMapOfItem().entrySet()) {
lstOfItem.add(new SelectItem(entry.getKey(), entry.getValue()));
}
return lstOfItem;
}
Verfahren zum Initialisieren um einen int
Wert in das entsprechende Etikett zu konvertieren
In Ihrer JSF-Ansicht, es einfach so nennen (bean
ist Ihre Back-End-Bohne)
<h:selectOneMenu id="role" value="#{profile.accountData.role}">
<f:selectItems value="#{bean.lstOfItem}"/>
</h:selectOneMenu>
und für die h:outputText
<h:outputText value="#{bean.itemName(profile.accountData.role)}"/>
es Ihnen Hoffnung kann
Sehr gute Antwort helfen . Vielen Dank! –