[resolvido]Vraptor, Selecionando itens no select

Olá !

Estou fazendo um formulario e outro de edição.

A minha duvida é a seguinte como fazer para que uma List vinda do banco selecione uma outra List EX:

<select data-placeholder="Selecione os contatos" class="chzn-select" multiple name="contacts"> <c:forEach items="${contact}" var="contact"> <option value="${contact.idCon }" >${contact.name } - ${contact.number }</option> </c:forEach> </select>

Essa lista retorna todos os contatos do usuario no banco de dados.

Eu quero que ele retorne todos os contatos do usuario no banco de dados e selecione no os contatos relacionados ao grupo cadastrado

Eu ja possuo as duas Lists

result.include("contact", new ContactDao().listaTudo(usuarioWeb.logado));//retorna todos os contatos do usuario result.include("contact2", grupo.getContatos());//retorna todos os contatos cadastrados no grupo

Alguem pode me ajudar ?

Sinceramente não entendi ao certo oq tu queres fazer… e onde é o problema exatamente…

Explique melhor o problema… e diga oq você já tentou fazer p/ resolvê-lo e ai acabou nao dando certo… já é um bom inicio p/ termos uma ideia melhor doq tu precisa…

Basicamente que quero que os itens presentes em uma lista selecione os itens de outra.

Eu tenho uma lista completa e outra lista com os contatos do usuario que foram selecionados.

Eu quero que essa lista de contatos selecionados apareça selecionada no quando carregar a lista completa no JSP

P/ fazer isso tens q manipular os objetos DOM da tua página… ai nessa jogada é javascript mesmo…

Você pode fazer algo assim (acho que fica mais simples):

Crie um método getJsonContacts na classe Grupo que vai retornar um JSON com os IDs dos contatos selecionados:

public String getJsonContacts (){
   if (this.getContatos() == null || this.getContatos().isEmpty())
      return "";

   StringBuilder builder = new StringBuilder("{contacts:[");

   String virgula = "";
   for (Contato obj : this.getContatos()) {
      builder.append(virgula).append(obj.getId());
      virgula = ", ";
   }

   return builder.append("]}").toString();
}

Esse método vai gerar uma saída mais ou menos assim:

{contacts:[1, 2, 4, 5, 8]}

E esses vão ser os IDs dos que devem ser selecionados.
Então, no seu formulário, você precisa receber esse jsonContacts, para isso, precisa fazer um include do grupo:

result.include("group", grupo);

E depois acessar o método que criamos lá em cima.

&lt;script&gt;
var contacts = '${group.jsonContacts}';
// Existe a chance de não ter nenhum contato selecionado.
if (contacts.length &gt; 0) {
   contacts = eval('(' + contacts + ')').contacts; // transforma string em objeto.

   var select = $('select[name=&quot;contacts&quot;]');

   for (var i = 0; i &lt; contacts.length; i++)
      select.find('option[value=&quot;' + i + '&quot;]').attr('selected', true);

   select.trigger(&quot;liszt:updated&quot;);
}
&lt;/script&gt;

tenta fazer como aqui:
http://web.archive.org/web/20101205134713/http://tnogueira.com/blog/2010/04/28/carregando-combo-de-estado-e-municipios-utilizando-ajax-com-jquery-json-e-vraptor-3-1-2/

Lucas, pelo o que eu entendi, ele quer que na tela apareça os contatos que já foram selecionados e estão gravados no banco de dados…

Nesse exemplo, ele busca o conteúdo de outro select à partir do resultado de um select.

Opaaa consegui aqui estava faltando algumas alterações mas valeu mesmo cara salvou meu dia -