@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.
Coloquei o meu Controller, e o meu converter, atualmente não faz nada ^^, só retorna strings porque estou testando, o problema é que o método nunca é chamado.
Coloquei a tag de AJAX aqui, mas o que acontece agora é que quando eu mudo a seleção, ele retorna ao estado anterior (“Selecione um item…”) como se tivesse postando, e restaurando o estado da view, só que com estado default.
Quando eu mudasse a seleção, o getAsObject era para ser chamado?
[quote=xdraculax]Coloquei a tag de AJAX aqui, mas o que acontece agora é que quando eu mudo a seleção, ele retorna ao estado anterior (“Selecione um item…”) como se tivesse postando, e restaurando o estado da view, só que com estado default.
Quando eu mudasse a seleção, o getAsObject era para ser chamado?[/quote]
Sim. O que está acontecendo é que seu getAsObject não retorna um objeto que existe na sua lista, então ele seta o primeiro cara da lista na sua view.