我使用此h:selectOneMenu
将值设置为数据库。
<h:selectOneMenu id="role" value="#{profile.accountData.role}">
<f:selectItem itemLabel="User" itemValue="0" />
<f:selectItem itemLabel="Developer" itemValue="1" />
<f:selectItem itemLabel="Sales" itemValue="2" />
<f:selectItem itemLabel="Administrator" itemValue="3" />
<f:selectItem itemLabel="Super user" itemValue="4" />
</h:selectOneMenu>
如何根据我使用h:outputText
设置的int值将字符串显示到h:selectOneMenu
?
H:的outputText
答案 0 :(得分:1)
这样做的一种方法是在后端bean中添加一些方法:
Map<Integer, String>
的方法,其中包含要在selectOneMenu
selectItem
List<SelectItem>
的方法初始化Map
值
String
以通过在地图中提取来从项目值(整数)中检索项目名称初始化地图的方法
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;
}
初始化selectItem
值的方法
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;
}
将int
值转换为相应标签的方法
public String itemName(int val) {
return getMapOfItem().get(val);
}
在你的JSF视图中,只需这样调用它(bean
是你的后端bean)
<h:selectOneMenu id="role" value="#{profile.accountData.role}">
<f:selectItems value="#{bean.lstOfItem}"/>
</h:selectOneMenu>
和h:outputText
<h:outputText value="#{bean.itemName(profile.accountData.role)}"/>
希望它可以帮到你