Olá amigos,
Como faço para recuperar os valores selecionados de um selectOneMenu aninhado em uma dataTable?
<h:dataTable var="c" value="#{produtoController.listaCaracteristica}" >
...
<h:column>
...
<h:selectOneMenu value="#{produtoController.caracteristicasSelecionadas[c.id]}">
<f:converter converterId="CaracteristicaDeProdutoConverter" />
<f:selectItem itemValue="-1" itemLabel="Selecionar um valor"/>
<f:selectItems value="#{c.valores}" />
</h:selectOneMenu>
</h:column>
O meu Controller:
@ManagedBean
@SessionScoped
public class ProdutoController {
private Produto bean;
private DataModel<Produto> listagem;
private Map<Long, Boolean> selecionados = new HashMap<Long, Boolean>();
private List<Caracteristica> listaCaracteristica = new ArrayList<Caracteristica>();
private List<CaracteristicaDeProduto> caracteristicasSelecionadas = new ArrayList<CaracteristicaDeProduto>();
...
Converter:
@FacesConverter("CaracteristicaDeProdutoConverter")
public class CaracteristicaDeProdutoConverter implements Converter {
public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
throw new UnsupportedOperationException("Not supported yet.");
}
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
return "";
}
}
...
Pra começar o getAsObject desse converter não é chamado nunca.
O outro problema é que não encontrei uma forma de recuperar todas as seleções que o usuário fez nas múltiplas ComboBox exibidas.
Alguém já implementou algo parecido?