在我的应用程序中,有几个下拉框,每个下拉框都使用ValueChangeListner进行映射,因此当任何值从下拉列表更改时,会触发ValueChangeEvent并搜索控制器层中以ValueChangeEvent作为参数的所有方法。 / p>
这是我初始化我遇到错误的下拉列表的方法
private void methodForDropDown1(){
bean.setValue(null);
List<String> datas=new ArrayList<>();
datas.add("val1");
datas.add("val2");
datas.add("val3");
List<SelectItem> tableData = buildSelectionItems(datas);//takes String and returns SelectItem
datas.setComboBox(tableData);
}
这就是我处理ValueChangeEvent
的方式public void comboBoxDropDown1(ValueChangeEvent event) {
if(event.getOldValue()==null){
return;
}
try {
if (event.getNewValue()!=null) {
流程事件 }
如果我在第一次启动服务器后如果点击任何其他下拉框,那么我在这里提到的下拉列表已被初始化并且event.getNewValue() - &gt; VAL1, 但如果我点击下拉列表,则表示没有接受event.getOldValue(),它显示为null。
在页面中默认情况下它在页面加载时显示val1,所以假设这是新值,如果我选择val2 / val3然后它将这些值作为getNewValue()但是正如预期的那样它没有采取va1 as getOldValue()。