下拉列表未在 JSF 中填充
Dropdown list is not populating in JSF
我正在研究 Managedbean 和 JSF。如下所示,我的 ManagedBean 包含 JSF 获取值所需的所有要求。我已经初始化了我的下拉列表如下。在 selectOneMenu 中,我选择了国家/地区作为字符串,它将存储下拉列表选择的值,下拉列表将显示我在 Beans 中声明的列表。
不幸的是,事情并没有发生。每次下拉菜单呈现时都会给我一个空值。我花了几天时间研究它,但无法找出确切的解决方案。我清理了我的服务器,构建了工作区并更改了服务器,但没有任何效果。
** ManagedBean_list **
private List<String> listCountry;
private String country;
public void tada(){
listCountry=Arrays.asList("India", "pakisatan","America");
}
public List<String> getListCountry() {
return listCountry;
}
public void setListCountry(List<String> listCountry) {
this.listCountry = listCountry;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
JSF
<p:selectOneMenu id="country" value="#{loginBeans.country}">
<f:selectItems value="#{loginBeans.listCountry}" />
</p:selectOneMenu>
感谢您的帮助。 Empty dropdown list image
enter image description here
将您的 listCountry
转换为
private Map<String, String> listCountry = new HashMap<>();
listCountry.put("India", "India");
listCountry.put("Pakistan", "Pakistan");
listCountry.put("America", "America");
或
private List<SelectItem> listCountry = new ArrayList<>();
listCountry.add(new SelectItem("India", "India"));
listCountry.add(new SelectItem("Pakistan", "Pakistan"));
listCountry.add(new SelectItem("America","America"));
您使用的是哪个 bean 注释?你说“Managedbeans”,但你发布的源代码没有显示整个 bean,是吗?检查以确保您没有将旧式 JSF 托管 bean 注释与 CDI 注释混合使用。
问题是在初始化时,列表没有被调用。我通过在托管 bean class 的构造函数中包含列表函数来解决它。这样当构造函数启动时。它还会生成下拉列表。
我正在研究 Managedbean 和 JSF。如下所示,我的 ManagedBean 包含 JSF 获取值所需的所有要求。我已经初始化了我的下拉列表如下。在 selectOneMenu 中,我选择了国家/地区作为字符串,它将存储下拉列表选择的值,下拉列表将显示我在 Beans 中声明的列表。 不幸的是,事情并没有发生。每次下拉菜单呈现时都会给我一个空值。我花了几天时间研究它,但无法找出确切的解决方案。我清理了我的服务器,构建了工作区并更改了服务器,但没有任何效果。
** ManagedBean_list **
private List<String> listCountry;
private String country;
public void tada(){
listCountry=Arrays.asList("India", "pakisatan","America");
}
public List<String> getListCountry() {
return listCountry;
}
public void setListCountry(List<String> listCountry) {
this.listCountry = listCountry;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
JSF
<p:selectOneMenu id="country" value="#{loginBeans.country}">
<f:selectItems value="#{loginBeans.listCountry}" />
</p:selectOneMenu>
感谢您的帮助。 Empty dropdown list image enter image description here
将您的 listCountry
转换为
private Map<String, String> listCountry = new HashMap<>();
listCountry.put("India", "India");
listCountry.put("Pakistan", "Pakistan");
listCountry.put("America", "America");
或
private List<SelectItem> listCountry = new ArrayList<>();
listCountry.add(new SelectItem("India", "India"));
listCountry.add(new SelectItem("Pakistan", "Pakistan"));
listCountry.add(new SelectItem("America","America"));
您使用的是哪个 bean 注释?你说“Managedbeans”,但你发布的源代码没有显示整个 bean,是吗?检查以确保您没有将旧式 JSF 托管 bean 注释与 CDI 注释混合使用。
问题是在初始化时,列表没有被调用。我通过在托管 bean class 的构造函数中包含列表函数来解决它。这样当构造函数启动时。它还会生成下拉列表。