Jsf 组合框(selectOneMenu)中的第一个选定项
我想从组合框SelectOne菜单中的列表中选择一个值,但我想在打开组合框时,首先记住selectitem,然后是其他selectitems。我只想在后台选择一个项目,当页面加载时,需要选择该项目 这是我的密码:Jsf 组合框(selectOneMenu)中的第一个选定项,jsf,combobox,selectonemenu,Jsf,Combobox,Selectonemenu,我想从组合框SelectOne菜单中的列表中选择一个值,但我想在打开组合框时,首先记住selectitem,然后是其他selectitems。我只想在后台选择一个项目,当页面加载时,需要选择该项目 这是我的密码: <p:selectOneMenu value="#{indexBean.filter.ev}" converter="javax.faces.Integer" style="width: 70px"> <f:selectItem itemLabel="-Min
<p:selectOneMenu value="#{indexBean.filter.ev}" converter="javax.faces.Integer" style="width: 70px">
<f:selectItem itemLabel="-Mind-" itemValue="#{null}"/>
<f:selectItems value="#{indexBean.evLista}" var="ev" itemLabel="#{ev}" itemValue="#{ev}"/>
</p:selectOneMenu>
豆子:
public List<Integer> getEvLista() {
for (int i = 2015; i >= 2014; i--) {
evek.add(i);
}
return evek;
}
我想被选中,例如:2015年。我还没有@PostConstruct方法,但也许这就是解决方案。你能帮助我吗?谢谢 将valueChangeListener添加到p:SelectOne菜单,并将所选值作为单独的属性获取/设置
<p:selectOneMenu value="#{indexBean.selectedYear}" converter="javax.faces.Integer"
style="width: 70px" valueChangeListener="#{indexBean.yearValueChangeListener}">
<f:selectItem itemLabel="-Mind-" itemValue="#{null}"/>
<f:selectItems value="#{indexBean.evLista}" var="ev"
itemLabel="#{ev}" itemValue="#{ev}"/>
</p:selectOneMenu>
我的印象是,即使在发送同步GET请求之后,您仍然希望选择一个已经选择的项目。在这种情况下,唯一的选择是将所选项目值={indexBean.filter.ev}存储到用户的会话中。您似乎正在尝试处理日期时间选择器。在这种情况下,为什么不使用PrimeFaces提供的日历呢。是的,a给人一种PrimeFaces用法的印象。嗯。。我添加了valueChangeListener和yearValueChangeListener方法。getter setter不重要,因为我使用lombok,我知道你想做什么,但那不起作用。:/我在yearValueChangeListener方法中也尝试了一些不同的方法:“if vce.getNewValue!=null | | vce.getNewValue!='但它也不起作用。更多想法?那么你想实现什么?我想在组合框中选择一个项目,这样页面加载时就不会显示-Mind-了,我需要先显示2015,但我想保持项目的顺序。顺序是:-记住,2015,2014我想保留在列表中:但不想在页面加载时默认选择它,我想在页面加载时选择另一个值,但我也想保留列表顺序。那么,列表中有什么问题?指定selectedYear=2015或要在加载时保持选中状态的值。
int selectedYear = 0;
public int getSelectedYear(){
return selectedYear;
}
public void setSelectedYear(int selectedYear){
this.selectedYear = selectedYear;
}
public void yearValueChangeListener(ValueChangeEvent vce) {
if (vce.getNewValue() != null) {
selectedYear = Integer.parseInt(vce.getNewValue().toString());
}
}