Bom dia amigos, Quando posto meu formulário estou recebendo o erro: No bean specified. Não sei o que pode estar acontecendo, estão, vou explicar como foi implementado.
Tenho um servlet mapeado como ies.html. No método doGet ele mostra o formulário HTML e no método doPost ele popula um bean com os dados do formulário e os grava no banco de dados.
Segue o form html (ies_form.jsp):
...
<div id="form">
<jsp:useBean id="bean" class="bean.Ies" scope="session">
<jsp:setProperty name="bean" property="*" />
</jsp:useBean>
<form method="post" name="form" action="ies.html">
<div id="form_field">
<label class="label_padrao">Código</label><input type="text" name="id" id="id" maxlength="6" class="obrigatorio" value="${bean.id}" /><br>
<label class="label_padrao">Nome</label><input type="text" name="nome" id="nome" maxlength="50" class="obrigatorio" value="${bean.nome}" /><span class="span_dica">Digitar apenas nros. Ex: 99999999999</span><br>
<label class="label_padrao">Sigla</label><input type="text" name="sigla" id="sigla" maxlength="20" class="obrigatorio" value="${bean.sigla}" /><br>
<label class="label_padrao">Cidade</label><input type="text" name="cidade.id" id="cidade.id" maxlength="6" value="${bean.cidade.id}" /><input type="text" name="cidade.nome" id="cidade.nome" maxlength="30" value="${bean.cidade.nome}" /><br>
</div>
<div id="form_botao">
<input type="submit" name="cadastrar" value="Cadastrar" class="botao_padrao" />
</div>
</form>
</div>
...
O código do método doGet do servlet IesServlet.java (ies.html)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/jsp/ies/ies_form.jsp").forward(request, response);
}
Agora a parte que está dando problema… é no populate do Beanutils…
O código do método doPost do servlet IesServlet.java (ies.html)
Ies bean = new Ies();
try {
BeanUtils.populate(bean, request.getParameterMap());
} catch (Exception e) {
erro.setErro("ERRO: Ocorreu um erro ("+e.getMessage()+")");
}
try {
IesDAO dao = new IesDAO();
dao.save(bean);
request.setAttribute("sucesso", "Registro salvo com sucesso!");
} catch (SQLException e) {
erro.setErro("ERRO: Ocorreu um erro ("+e.getMessage()+")");
request.setAttribute("erros", erro.getErros());
}
request.getRequestDispatcher("/WEB-INF/jsp/ies/ies_form.jsp").forward(request, response);
O erro No bean specified acontece na linha:
BeanUtils.populate(bean, request.getParameterMap());
Então não sei o que fiz de errado…
Ps.: Adicionei ao meu projeto as seguintes bibliotecas:
- commons-beanutils-bean-colletion.jar
- commons-beanutils-core.jar
- commons-beanutils.jar