pessoal, to com um problema na criação da minha action no Struts 1 para remoção de um elemento do mySql. Se alguem puder me ajudar com a lógica eu agradeço…
segue abaixo os códigos…
este é a action
[code]
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Pessoa pessoa = new Pessoa();
PessoaForm Formulario = (PessoaForm) form;
pessoa.setId(Formulario.getPessoa().getId());
PessoaDAO dao;
try {
dao = new PessoaDAO();
dao.remove(pessoa);
} catch (SQLException e) {
e.printStackTrace();
}
return mapping.findForward("ok");
}[/code]
debugando ela percebi q as informações que vem da jsp nao populam a minha variavel pessoa para que possa ser removido o elemento…
esta é a Jsp
<logic:present name="pessoas">
<table border="1">
<logic:iterate name="pessoas" id="pessoa">
<tr>
<input type="hidden" name="id" values="<bean:write name="pessoa" property="id" />" />
<td><bean:write name="pessoa" property="nome" /></td>
<td><bean:write name="pessoa" property="cpf" /></td>
<td><a href="removePessoa.do?codigo=<bean:write name="pessoa" property="id" />">Remover</a></td>
</tr>
</logic:iterate>
</table>
</logic:present>
todas as tags necessarias estão declaradas…
se alguem puder me ajudar com a logica de remoção eu agradeço…
vlw galera
Preste atenção nas " "
Você deve fazer o hidden assim por exemplo:
<input type='hidden' name='id' values='<bean:write name="pessoa" property="id" />' />
o problema perciste,
pois ele tras para a variavel formulario ( na action ) somente o ultimo item incluido,
e no momento em q esse era para ser atribuido na variavel pessoa para ser removido, fica tudo com seu valor padrao
string passa null
int passa 0
e nada é removido
cara… dentro do teu PessoaForm vc vai ter que criar um Array de id… por ex: int [] arrayId; get e set…
ai no seu jsp…
<input type="hidden" name="arrayId" values="<bean:write name="pessoa" property="id" />" />
é pra funcionar…
Galera vlw a ajuda de todos, mas o problema estava na logica na action msm…
estou disponibilizando agora para todos.
talvez possa ajudar alguem…
[code]
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
PessoaForm pessoa = new PessoaForm();
pessoa.setId((request.getParameter("codigo")));
PessoaDAO dao;
try {
dao = new PessoaDAO();
dao.remove(pessoa);
} catch (SQLException e) {
e.printStackTrace();
}
return mapping.findForward("ok");
}[/code]
debugando ela percebi q as informações que vem da jsp devem ser setadas na variavel pessoa
esta é a Jsp
<logic:present name="pessoas">
<table border="1">
<logic:iterate name="pessoas" id="pessoa">
<tr>
<input type="hidden" name="id" values="<bean:write name="pessoa" property="id" />" />
<td><bean:write name="pessoa" property="nome" /></td>
<td><bean:write name="pessoa" property="cpf" /></td>
<td><a href="removePessoa.do?codigo=<bean:write name="pessoa" property="id" />">Remover</a></td>
</tr>
</logic:iterate>
</table>
</logic:present>
nossa… agora que vi que oq eu escrevi não tem nada a ver… vc só queria recuperar UM id neh…
oq falei era para recuperar vários…mas… ta ai a dica… haha