Próbowałem pracować z zgrupowanych pozycje z mniej więcej tak:JSF 2: Wybór grupowania z SelectItemGroup + POJO
<h:selectOneMenu value="#{selectionLabBean.oneSelectMenuGroup}"
id="SelectOneMenuGroup" >
<f:selectItems value="#{selectionLabBean.heroGroupList}" />
</h:selectOneMenu>
<p:message for="SelectOneMenuGroup" />
gdzie heroGroupList jest mniej więcej tak:
SelectItem[] heroArr = new SelectItem[] {
new SelectItem("Paladin"),
...
};
heroListWithGrouping.add(
new SelectItemGroup("Human",
"A collection of human race Heroes",
false,
heroArr
)
);
.....
a ja m lewo zastanawiasz się, czy mogę zrobić tego rodzaju grupowania z POJO zamiast obiektów SelectItem?
Jeśli nie mogłem tego osiągnąć, myślę, że muszę jakoś przekonwertować moje obiekty domeny lub wyniki moich zapytań na tablice SelectItem, aby działało.
Wszelkie pomysły?
Wniosek jest taki: aby użyć grupowego wyboru, musimy zamienić POJO na listę. Ale nadal możemy używać POJO jako itemValue z konwerterem. Coooool! Dziękuję BalusC. –
bertie
Próbowałem powiązać go z typem Hero, ale nie udało się z błędem: SelectOneMenuGroup: Błąd sprawdzania poprawności: Wartość jest niepoprawna, co jest dziwne, ponieważ nie używam żadnego sprawdzania poprawności. .. A w managebean powiązanie to: private HeroBean oneSelectMenuGroupPojo; Rozwinąłem go i odkryłem, że proggie nie ustawia wartości wiązania. Próbowałem var = "hero" itemValue = "# {hero}" itemLabel = "# {hero.name}", ale także nie udało się. –
bertie
Może się to zdarzyć, gdy wybrany element nie pasuje do żadnej z pozycji na liście według metody 'equals()'. Prawdopodobnie metoda 'equals()' nie jest zaimplementowana lub źle zaimplementowana. – BalusC