ADF selectOneChoice的ValueChangeListener只有在选择的值发生变化时才会触发。如果选项没有发生变化,ValueChangeListener就不会被执行。
如果需要在每次选择项时都触发ValueChangeListener,可以使用以下方法:
在页面中定义一个隐藏的inputText组件,用于存储上一次选择的值。
在selectOneChoice组件中添加一个ValueChangeListener,将当前选择的值与上一次选择的值进行比较。
在ValueChangeListener方法中,比较当前选择的值与上一次选择的值。如果不相同,则执行相应的逻辑。
public void valueChangeListener(ValueChangeEvent event){
String currentValue = event.getNewValue().toString();
String previousValue = getPreviousValue();
if(!currentValue.equals(previousValue)){
// 执行逻辑
}
setPreviousValue(currentValue);
}
通过这种方式,每次选择项时都会触发ValueChangeListener的执行,而不仅仅是在选择的值发生变化时。
上一篇:ADF JSON表达式格式化