Ckeckbox Struts 2

4 respostas
Diegodamotta

Pessoal preciso de ajuda,

Sou iniciante em JAVA, não estou conseguindo recuperar na minha action os checkboxs selecionados na JSP, estou recebendo NullPointerException, quando submeto o formulario.

minha JSP:

<c:forEach var="agenda" items="${agendas}">

<c:if test="${agenda.id_agenda%2==0 }">
<tr id="listaCoral" bgcolor="#EE7600">
<td><input type="checkbox" name="horarioselecionado"  value="${agenda.id_agenda}" ></td></tr>
</c:if>

<c:if test="${agenda.id_agenda%2!=0 }">
<tr id="listaBranca" bgcolor="#FFFFFF">
<td><input type="checkbox" name="horarioselecionado"  value="${agenda.id_agenda}"></td> </tr>
</c:if>
</c:forEach>

Action:

public class AdicionaAlunoAction {
	private Aluno aluno;		
	private int[] horarioselecionado;
	
	@Action(value="adicionaAluno", results={
			@Result(name="ok", type="redirectAction", params={"actionName", "listaAluno"})
	})
	
	public String execute(){	  
		
		AlunoDAO aldao= new AlunoDAO();

		MatriculaDAO madao =  new MatriculaDAO();

		aldao.adiciona(aluno); // adicionando aluno
				
		aluno=aldao.buscaPorCpfouNome(aluno.getCpf()); // recuperando a matricula do aluno (a pk está sendo gerada pelo autoincrement do mysql)

		madao.adiciona(horarioselecionado,aluno.getMatricula()); // adicionando matricula
		
		return "ok";
		
	}
	public Aluno getAluno() {
		return aluno;
	}
	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}
	public int[] getHorarioselecionado() {
		return horarioselecionado;
	}
	public void setHorarioselecionado(int[] horarioselecionado) {
		this.horarioselecionado = horarioselecionado;
	}

4 Respostas

fbl.lucas

Cara primeiro edita seu post ai, na edição tem uma tag "[code]" que deixa o código mais visivel...
Outra coisa, posta a pilha de erro ai para descobrirmos onde o NullPointer acontece

Diegodamotta

Pois é a array está vindo nulo para action, mas não sei como resolver,

pilha de erro:

java.lang.NullPointerException

br.com.studio.MatriculaDAO.adiciona(MatriculaDAO.java:25)

br.com.studio.action.AdicionaAlunoAction.execute(AdicionaAlunoAction.java:31)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)

com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)

com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)

org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
fbl.lucas

Troca o array por List horarioselecionado = new ArrayList(); só para testar

Diegodamotta

Opa Muito obrigado kra,

consegui resolver,

Era a posição da tag no HTML, eu tinha colocado a lista de checkbox fora da tag, foi uma grande falta de atenção,

mas muito obrigado pela sua atenção

Att,

Diego

Criado 17 de fevereiro de 2012
Ultima resposta 17 de fev. de 2012
Respostas 4
Participantes 2