Boa noite pessoal.
Estou utilizando MVC para uma tela básica que deleta um ou mais dados listados e toda vez que chamo o método do controller que deverá remover o registro recebo o erro:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
Como é um hello world não estou usando banco de dados, todas as operações ficam gravadas no arrayList.
Meu CandidatoBean:
[code]public class CandidatoBean extends BaseBean implements Serializable{
private static final long serialVersionUID = 1L;
private boolean checkbox = false;
private String codigo, nome, nascimento, telefone;
//construtores e get and setters...[/code]Minha página:
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>deletaCandidato</title>
</head>
<body>
<h2>Deleta Candidato</h2>
<form:form method="get" action="deletacandidato.html"
modelAtribute="candidatoForm">
<table>
<tr>
<th>SL</th>
<th>Código</th>
<th>Nome</th>
<th>Nascimento</th>
<th>Telefone</th>
</tr>
<c:forEach items="${candidatoForm.candidatos}" var="candidato">
<tr>
<td><input name="check" value="${candidato.checkbox}"
type="checkbox" /></td>
<td><input name="codigo" value="${candidato.codigo}" /></td>
<td><input name="nome" value="${candidato.nome}" /></td>
<td><input name="nascimento" value="${candidato.nascimento}" /></td>
<td><input name="telefone" value="${candidato.telefone}" /></td>
</tr>
</c:forEach>
</table>
<br />
<input type="submit" value="Salvar" />
<input type="button" value="Voltar"
onclick="javascript:history.back()" />
</form:form>
</body>
</html>
CandidatoForm.java[code]public class CandidatoForm {
private List<CandidatoBean> candidatos;
// contrutores e get/set[/code]E o controller[code]@Controller
public class CandidatoController {
private static final Logger LOGGER = Logger
.getLogger(CandidatoController.class);
private static List<CandidatoBean> candidatos = new ArrayList<CandidatoBean>();
static {
candidatos.add(new CandidatoBean(false, "1", "2", "3", "4"));
}
@RequestMapping(value = "/deletacandidato", method = RequestMethod.GET)
public ModelAndView deletarCandidatos(
@ModelAttribute("candidatoForm") CandidatoForm candidatoForm) {
List<CandidatoBean> candidatos = candidatoForm.getCandidatos();
if (!candidatos.isEmpty()) {
for (CandidatoBean candidato : candidatos) {
if (candidato.isCheckbox()) {
candidatos.remove(candidato);
LOGGER.info(candidato);
}
}
CandidatoController.candidatos = candidatos;
candidatoForm.setCandidatos(candidatos);
}
return new ModelAndView("listaCandidato", "candidatoForm",
candidatoForm);
}
}[/code]Não entendo a exceção de ponteiro nulo se tanto o array como o modelAtribute da página estão preenchidos.
Onde é o problema?
Agradeço desde já.