Array + Vraptor 3 [RESOLVIDO]

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" > 				
     &lt;input id="disciplinaId" type="checkbox" name="disciplinaId" value="${disciplina.id}" /&gt;${disciplina.nome}<br/> 
&lt;/c:forEach&gt;

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){...}  

Bom dia…

ok grato pela atencao

att