Erro HTTP Status 500 Action does not contain method named

4 respostas
G

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:

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.
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...

4 Respostas

dlt

coloca tb o código da sua action pra gente ter mais pistas do que pode ser o problema…
:slight_smile:

G

Olha minha Action:

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");	
	}
}

Obrigado pela atenção

G

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

G

(sobe)

Criado 11 de fevereiro de 2008
Ultima resposta 13 de fev. de 2008
Respostas 4
Participantes 2