Iae galera blz?
Comecei a estudar vraptor tem umas 2 semanas, mas estou tendo dificuldades em relação
ao receber array
na jsp tenho
<c:forEach items="${disciplinas}" var="disciplina" >
<input id="disciplinaId" type="checkbox" name="disciplinaId" value="${disciplina.id}" />${disciplina.nome}<br/>
</c:forEach>
no controller
public void agregarDisciplina(String [] disciplinaId){...}
o problema é quando eu seleciono mais de uma disciplina na jsp funciona blz, mas quando eu seleciono apenas uma disciplina
da NPE, disciplinaId vem null, alguma solução para isso?
att
Isso é um bug do VRaptor (http://github.com/caelum/vraptor/issues/labels/3.1.2#issue/140)
o jeito de contornar é receber uma List ao invés de String[]
talvez você tenha que mudar um pouco o jsp também:
<c:forEach items="${disciplinas}" var="disciplina" varStatus="s" >
<input type="checkbox" name="disciplinaId[${s.index}]" value="${disciplina.id}" />${disciplina.nome}<br/>
</c:forEach>
(o id do input não é necessário, e vc não deveria colocar vários elementos com o mesmo id)
O que funciona, e talvez facilitasse sua vida, é receber Disciplina ao invés de String:
<c:forEach items="${disciplinas}" var="disciplina" varStatus="s" >
<input type="checkbox" name="disciplinas[${s.index}].id" value="${disciplina.id}" />${disciplina.nome}<br/>
</c:forEach>
public void agregarDisciplina(List<Disciplina> disciplinas){...}