g1b4
Fevereiro 11, 2008, 9:29pm
#1
Olá, sou novato em Struts e utilizo a versao 1.X.
Tento fazer a inclusão ou alterar um registro e me mostra esta mensagem no browser:
[code]HTTP Status 500 - Action[/cadastroEspecialidade] does not contain method named $(cadastroEspecialidadeForm.acaoCadastro)
type Status report
message Action[/cadastroEspecialidade] does not contain method named $(cadastroEspecialidadeForm.acaoCadastro)
description The server encountered an internal error (Action[/cadastroEspecialidade] does not contain method named $(cadastroEspecialidadeForm.acaoCadastro)) that prevented it from fulfilling this request.[/code]
A linha que dá o erro:
<html:form action="/cadastroEspecialidade?oper=$(cadastroEspecialidadeForm.acaoCadastro)">
No meu xml-config, está assim:
<action-mappings>
<action
attribute="cadastroEspecialidadeForm"
input="/form/cadastroEspecialidade.jsp"
name="cadastroEspecialidadeForm"
parameter="oper"
path="/cadastroEspecialidade"
scope="request"
type="br.com.clinica.struts.action.CadastroEspecialidadeAction">
<forward name="cancelado" path="/index.html" />
<forward name="falha" path="/form/resposta.jsp" />
<forward name="sucesso" path="/form/resposta.jsp" />
<forward name="show" path="/form/cadastroEspecialidade.jsp" />
</action>
Alguém poderia me ajudar?
Agradeço antecipadamente…
dlt
Fevereiro 11, 2008, 11:04pm
#2
coloca tb o código da sua action pra gente ter mais pistas do que pode ser o problema…
g1b4
Fevereiro 11, 2008, 11:13pm
#3
Olha minha Action:
[code]
package br.com.clinica.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import br.com.clinica.struts.form.CadastroEspecialidadeForm;
import br.com.clinica.apresentation.ctr.ClinicaFacade;
public class CadastroEspecialidadeAction extends DispatchAction {
ClinicaFacade clinicaFacade = new ClinicaFacade();
public ActionForward incluir(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
CadastroEspecialidadeForm cadastroEspecialidadeForm = (CadastroEspecialidadeForm) form;// TODO Auto-generated method stub
if (isCancelled(request)) {
return mapping.findForward("cancelado");
}
ActionMessages actionMessages = null;
try{
clinicaFacade.addEspecialidade(cadastroEspecialidadeForm.getCodigo(),
cadastroEspecialidadeForm.getDescricao());
actionMessages = new ActionMessages();
actionMessages.add("message", new ActionMessage("msg.insert.sucesso"));
saveMessages(request, actionMessages);
return mapping.findForward("sucesso");
}
catch (Exception e) {
actionMessages = new ActionMessages();
actionMessages.add("message", new ActionMessage("msg.insert.falha", e.getMessage()));
saveMessages(request, actionMessages);
return mapping.findForward("falha");
}
}
public ActionForward alterar(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
CadastroEspecialidadeForm cadastroEspecialidadeForm = (CadastroEspecialidadeForm) form;
if (isCancelled(request)) {
return mapping.findForward("cancelado");
}
clinicaFacade.updateEspecialidade(cadastroEspecialidadeForm.getCodigo(),
cadastroEspecialidadeForm.getDescricao());
ActionMessages actionMessages = new ActionMessages();
actionMessages.add("message", new ActionMessage("msg.update.sucesso"));
saveMessages(request, actionMessages);
System.out.println("update...");
return mapping.findForward("sucesso");
}
public ActionForward excluir(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
CadastroEspecialidadeForm cadastroEspecialidadeForm = (CadastroEspecialidadeForm) form;
if (isCancelled(request)) {
return mapping.findForward("cancelado");
}
clinicaFacade.excludeEspecialidade(cadastroEspecialidadeForm.getCodigo());
ActionMessages actionMessages = new ActionMessages();
actionMessages.add("message", new ActionMessage("msg.exclude.sucesso"));
saveMessages(request, actionMessages);
System.out.println("exclude...");
return mapping.findForward("sucesso");
}
public ActionForward show(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//CadastroEspecialidadeForm cadastroEspecialidadeForm = (CadastroEspecialidadeForm) form;
return mapping.findForward("show");
}
}[/code]
Obrigado pela atenção
g1b4
Fevereiro 11, 2008, 11:20pm
#4
Só um detalhe:
Se eu coloco incluir no jsp, funciona. Por favor veja se estou fazendo algo errado, acesso a pagina jsp por aqui:
<a href="cadastroEspecialidade.do?oper=show&acaoCadastro=incluir"><b>Cadastrar Novo</b></a>
Obrigado