Checkbox checados no VRaptor

10 respostas
anderson_lr

Pessoal,

Tenho uma lista de checkbox's em minha JSP que preciso enviar para o controlador do VRaptor. O problema é que já estou enviando para o controlador do VRaptor uma outra entidade para ser persistida e gostaria de enviar esses checkbox's também, ou seja, o VRaptor teria que pegar dois parâmetros no método de recepção. Alguém saberia me dizer como recuperar os valores desses checkbox's no controlador?

10 Respostas

Guevara

Se eu entendi bem, vc quer receber dois objetos no Controller. É só vc nomear o checkbox fazendo referência ao objeto que vc quer e receber no Controller, tipo:

public void adiciona(Objeto1 objeto1, Objeto2 objeto2) {
// código aqui
}
<input type="checkbox" name="objeto2">

E o resto dos inputs fariam referência a Objeto1.
É isso que vc quer?
Abraço!!

anderson_lr

Cara,

Seria isso sim. Só que o problema é que esses dados dos checkbox's não pretencem a um objeto. Na realidade eles vêm de uma View que eu tenho no meu banco de dados. Mas preciso deles no controller para fazer outra coisa. Então com que 'name' devo enviar e em que formato devo receber no parâmetro do controller?
cinei

Complementando ao que o Guevara postou:

<input type="checkbox" checked id="check1" name="check1" />
public void adiciona(Objeto1 objeto1, boolean check1) {  
// código aqui  
}
Lucas_Cavalcanti

só pra ficar mais claro:

<input type="checkbox" name="carrapato" />

no controller:

public void adiciona(Outro outro, boolean carrapato) {

}
anderson_lr

Cara,

Nessa caso seriam vários "carrapatos" checkados, então acho que não posso receber isso com um boolean no controller né?
Lucas_Cavalcanti

vc pode fazer:

<c:forEach items="${algumaLista}" var="..." varStatus="s">
     ....
     <input type="checkbox" name="carrapatos[${s.index}]" />
</c:forEach>

e no controller

public void adiciona(..., List<Boolean> carrapatos) {..}

se vc quiser q o checkbox represente algo diferente de boolean basta passar um value pra ele e receber uma List do tipo correspondente

anderson_lr

Cara,

Obrigado, funcionou direitinho. Valeu mesmo.
fuadksd

Dúvida aqui: se eu não informar o index do “array” no name, funciona?

Lucas_Cavalcanti

funciona, mas coloque [] aonde seria o index:

nomeDoArray[]
fuadksd

Sim, sim. Valeu!

Criado 16 de setembro de 2010
Ultima resposta 5 de jul. de 2012
Respostas 10
Participantes 5