Olá galera como vão ?
bom meu problema é o seguinte eu criei uma jsp e um modelo para fazer o controle de permissoes por usuario
na minha jsp que recebe quais telas cada funcionario tem acesso eu tenho uma lista de checkboxes que deveriam retornar quais telas estão disponiveis para o meu controller
porém essas checkboxes estão retornando valor null estou anexando o codigo da minha jsp e do meu controller
formulario.jsp
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Editar Permissões</title></head><body><formaction="<c:url value="/permissao/${analista.id}"/>" method="post">
<fieldset><legend>Editar permissões para o usuário - ${analista.nome_analista }</legend><c:forEachitems="${funcionalidadeList}"var="funcionalidades"><inputtype="checkbox"name="permissoes"value="${funcionalidades.id}"/> ${funcionalidades.nome_tela } <br/></c:forEach><buttontype="submit">Enviar</button></fieldset></form></body></html>
a variavel array de string permissoes no metodo teste vem nulo da minha view, não consigo imaginar o meu problema
estou usando Apache Tomcat 6.0 com VRaptor 3.1.2 e estou usando o SiteMesh
se alguem não entendeu é so avisar que eu tento explicar melhor
Acabo de descobrir que se tenho 3 itens na minha lista
e seleciono somente 1 ele retorna null, se seleciono 2 itens da lista ele retorna o array com duas posições…
Tenkara_Kiddo
Tenkara Kiddo:
Acabo de descobrir que se tenho 3 itens na minha lista
e seleciono somente 1 ele retorna null, se seleciono 2 itens da lista ele retorna o array com duas posições…
Consegui finalizar o problema coloquei uma pequena POG que funcionou igual magica
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Editar Permissões</title></head><body><formaction="<c:url value="/permissao/${analista.id}"/>" method="post">
<fieldset><legend>Editar permissões para o usuário - ${analista.nome_analista }</legend><c:forEachitems="${funcionalidadeList}"var="funcionalidades"><inputtype="checkbox"name="permissoes"value="${funcionalidades.id}"/> ${funcionalidades.nome_tela } <br/></c:forEach><inputtype="hidden"name="permissoes"value="0"/><buttontype="submit">Enviar</button></fieldset></form></body></html>
na linha 18 coloquei um input hidden com um valor qualquer (que eu tenho certeza que nao vai afetar minha app) com o mesmo nome do input de checkbox
então o vraptor recebeu um array de string com duas posições
obrigado a todos
Lucas_Cavalcanti
atualize para a última versão do VRaptor, que esse bug foi corrigido.
o que vai acontecer é que se vc não selecionar nenhuma checkbox, o permissões vai vir nulo.
Tenkara_Kiddo
obrigado Lucas,
na nova versão o array de string virá como vazio somente? ao inves de nulo (caso vazio)
Lucas_Cavalcanti
não, pq o VRaptor não tem como saber…
se vc não marca nenhum checkbox simplesmente não vem nenhum parâmetro “permissoes” no request. E ele entende isso como null.