我想从组合框中的列表中选择一个值(selectonemenu),但是当我打开组合框时,我希望将“-Mind-”保留为第一个选择项,然后保留其他选择项。我只想在后台选择一个项目,当页面加载时,需要选择该项目。
这是我的代码:
<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
方法,但也许这就是解决方案。你能帮助我吗?谢谢!
答案 0 :(得分:0)
将valueChangeListener
添加到p:selectOneMenu
,并将所选值设置为单独的属性。
<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>
<强>豆:强>
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());
}
}