[Resolvido]Radio Button com VRaptor e JSP

14 respostas
Rafael_Guerreiro

Olá Pessoal!

Eu estou com um probleminha, preciso capturar o valor do radio button que foi checado e enviar pelo botão.

Como faço isso?

Os radios são montados com o <c:forEach>.

Obrigado.

14 Respostas

Lucas_Cavalcanti

só colocar o nome dele na convenção do vraptor:

<input type="radio" name="objeto.propriedade" value="VALOR"/>
<input type="radio" name="objeto.propriedade" value="OUTRO_VALOR"/>
<input type="radio" name="objeto.propriedade" value="MAIS_UM_VALOR"/>

note que o name tem que ser o mesmo pra todos os radios

Rafael_Guerreiro

Isso ai já está sendo feito… O problema é que eu preciso enviar isso na action do form para uma lógica que recebe o numero que foi checado…

Lucas_Cavalcanti

vc quer mudar a action do form de acordo com o radio?

ou vc quer só mandar o dado do checkbox?

Rafael_Guerreiro

Só mandar o numero que foi checado…

Lucas_Cavalcanti

só colocar o radio dentro do form então

Rafael_Guerreiro
Mas o meu problema está em enviar o valor que foi clicado para a minha lógica. Olhe a minha JSP:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<c:import url="/WEB-INF/jsp/imports/header.jsp" />
<c:import url="/WEB-INF/jsp/imports/menuTabelas.jsp" />

<div class="conteudoPrincipal">
<div class="informativo">Aquisição</div>

<form id="formularioListarAquisicaoNovo"
	action="<c:url value="/aquisicao/novo"/>" method="POST">
<button style="display: block; float: left; margin-right: 5px;"
	type="submit" name="_method" class="botao" value="GET">Adicionar</button>
</form>
<form id="formularioListarAquisicao"
	action="<c:url value="/aquisicao/"/>" method="POST">

<button style="display: inline; margin-right: 5px; margin-left: 5px;"
	type="submit" name="_method" class="botao" value="GET">Editar</button>
<button style="display: inline;" type="submit" name="_method"
	class="botao" value="DELETE">Remover</button>
<table>
	<thead>
		<tr>
			<th style="width: 60px;">Selecione</th>
			<th style="width: 600px;">Descrição</th>
		</tr>
	</thead>
	<tbody>
		<c:forEach items="${aquisicaoList}" var="aquisicao">
			<tr>
				<td>
				<center><input type="radio" name="id" checked="checked"
					value="${aquisicao.codigoAquisicao}"
					id="${aquisicao.codigoAquisicao}" /></center>
				</td>
				<td><label for="${aquisicao.codigoAquisicao}">${aquisicao.descricaoAquisicao}</label></td>
			</tr>
		</c:forEach>
	</tbody>
</table>
<button style="display: inline; margin-left: 10px; margin-right: 5px;"
	type="submit" name="_method" class="botao" value="GET">Editar</button>
<button style="display: inline;" type="submit" name="_method"
	class="botao" value="DELETE">Remover</button>
</form>
</div>

<c:import url="/WEB-INF/jsp/imports/footer.jsp" />
Lucas_Cavalcanti

vc tá recebendo um parâmetro chamado id no controller?

Rafael_Guerreiro

Sim… mas ele não está enviando nenhum valor…

Lucas_Cavalcanti

será pq todos os checks estão checados?

vc tá recebendo um Long id no parâmetro da lógica no vraptor?

Rafael_Guerreiro

Na verdade só 1 fica checado. E o id é do tipo Long…

O problema não está na minha action do form?

Lucas_Cavalcanti

a lógica que vc quer chamar está anotada com @Path("/aquisicao/")? ou @Post("/aquisicao/")?

Rafael_Guerreiro

Está anotada com @Delete@Path("/aquisicao/{id}") (para o botão remover) e com @Get@Path("/aquisicao/{id}") (para o botao editar).

Lucas_Cavalcanti

vc não está recebendo o id pela url (a menos que o radio mude a action do form via javascript)

tire o {id} dos seus paths que vai funcionar, ou mude via javascript

Rafael_Guerreiro

Caracaaa meu! Funcionou! To mto feliz, fiquei o dia inteiro nisso… Muito obrigado!!

Criado 28 de março de 2011
Ultima resposta 28 de mar. de 2011
Respostas 14
Participantes 2