我正在使用vaadin select来显示一个带有状态的选择菜单。
private Select<States> states = new Select<>();
states.setLabel("State");
states.setItems(facade.stateService().findAllStates());
states.setItemLabelGenerator(States::getName);
Optional<States> state = facade.stateService().findByCode(location.getLocationState());
if (state.isPresent()) {
states.setValue(state.get()); // this is not working
}
我正在获取状态值并使用states.setValue()
设置它,但是select没有显示更新的状态。正在调用方法。如何使select菜单被选中?谢谢。
1条答案
按热度按时间t3psigkw1#
根据您共享的代码无法判断。很可能
location.getLocationState().get()
返回的States
对象与facade.stateService().findAllStates()
返回的值不共享相同的对象标识。即使属性(如“名称”)的对象是否相同。通常,答案是在类中实现hashCode
和equals
方法,使标识仅依赖于实体的id。