[Resolvido] Duvida selectManyCheckbox JSF

Ola, estou tentando criar um formulario onde haveram varios cursos para a pessoa selecionar(checkbox) apos isso tera um botao com ajax, onde na mesma pagina ira aparecer em um datatable o nome dos cursos selecionados, porem consigo apenas utilizando List<String> para obter os nomes, mas eu preciso que seja um List<Curso> pois preciso do id para gravar no BD.

Segue um exemplo da minha classe e do meu MB:

[color=red]OBS: errei uma coisa, ali é um ArrayList de Curso.[/color]

E essa é minha tela:

Meu MB(reduzido, deixando apenas essas partes):

@ManagedBean
@SessionScoped
public class BeanPost {

    private Post post = new Post();
    private ArrayList&lt;Curso&gt; cursosSelects = new ArrayList&lt;Curso&gt;();
    
        public BeanPost() {
        DaoCurso dc = new DaoCurso();
        post.setCategorias(dc.getAllCurso());
    }

    public ArrayList&lt;Curso&gt; getCursosSelects() {
        return cursosSelects;
    }

    public void setCursosSelects(ArrayList&lt;Curso&gt; cursosSelects) {
        this.cursosSelects = cursosSelects;
    }

   public Post getPost() {
        return post;
    }

    public void setPost(Post post) {
        this.post = post;
    }

Minha View:

&lt;h:selectManyCheckbox value="#{beanPost.cursosSelects}" layout="pageDirection"&gt;
       &lt;f:selectItems value="#{beanPost.post.categorias}" var="categ"
                              itemLabel="#{categ.nome}" itemValue="#{categ.class}"/&gt;
&lt;/h:selectManyCheckbox&gt;

Parte do datatable, porem está errado, pois ele nem mesmo aceita a propriedade “nome” da var “selec”.

&lt;h:dataTable value="#{beanPost.cursosSelects}" var="selec"&gt;
     &lt;h:column&gt;
             &lt;h:outputText value="#{selec}"/&gt;
      &lt;/h:column&gt;
&lt;/h:dataTable&gt;

Agradeco a quem puder me ajudar, e me desculpe a falta de conhecimento!

Me corrija se eu estiver errado. Se #{beanPost.post.categorias} é um List pq vc simplesmente ñ usa #{categ.id} no itemValue do <f:selectItems> e depois usa o DAO p/ puxar o banco?

Pq eu não queria puxar do banco uma coisa q eu ja puxei, entendeu?
mas se for o unico modo, eu agradeco e faco isso.

Obrigado.

Esse converter serve tanto p/ UISelectMany quanto p/ UISelectOne. O código está um lixo pq tive q codifica-lo correndo. Dê uma repassada p/ tratar possiveis problemas.

@FacesConverter(value = "FooConverter")
public class CursoConverter implements Converter {

    private int counter;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component,
            String value) {
        for (UIComponent child : component.getChildren()) {
            if (child instanceof UISelectItems) {
                List<Option> items = (List<Curso>) ((UISelectItems) child).getValue();
                return items.get(Integer.parseInt(value));
            }
        }
        return null;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component,
            Object value) {
        return Integer.toString(++counter);
    }

}

Perfeito, vlw demais kra!