Direcionar action diretamente para um método dentro de uma action no Struts
5 respostas
I
Igor_Franco
Boa tarde amigos,
Estou com uma pequena dúvida. Estou usando Struts 1.3.8 … Tenho uma classe FornecedorAction, e quero criar um método para cada action que vem do struts-config… Atualmente tenho que fazer um IF dentro desta action e pegar o valor de um property de um button por exemplo… Quero criar um metodo para cada action, exemplo alterar, incluir, e etc… como faço este direcionamento amigos ?
parameter=“dscAcao” esse trecho é oque vc terá que implementar.
e entao a sua classe action vc terá que da extends de DispatchAction.
entao se o parametro dscAcao = “inserirUsuario”, ele vai executar o metodo inserirUsuario dentro da classe action.
vlw!!!
I
Igor_Franco
Entendi amigo,
Mas quando implemento o parameter no struts-config, e no uso extends DispatchAction no método dentro da Action … o eclipse informa um erro pedindo para eu criar uma classe DispatchAction… O que devo fazer?
Vlw!
I
Igor_Franco
Estou implementado o meu método na action assim:
packagebr.com.sce.controller.action.fornecedor;importjava.util.ArrayList;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.action.*;importbr.com.sce.business.dao.fornecedor.FornecedorDAO;importbr.com.sce.business.vo.fornecedor.*;importbr.com.sce.resources.ConstantsUtil;publicfinalclassFornecedorActionextendsDispatchAction{// Alterar fornecedorpublicActionForwardalterarFornecedor(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{System.out.println("*** alterarFornecedor ***");ActionMessageserrors=newActionMessages();ActionMessagessucesso=newActionMessages();FornecedorDAOdaoFornecedor=newFornecedorDAO();// Objeto beanFornecedorForm que é populado com o que veio da jspFornecedorVOfornecedorForm=(FornecedorVO)form;// Objeto beanFornecedor é o que vai para a jsp forward - se não houver errosStringIdFornecedor=fornecedorForm.getId();// Com StrutsStringopcao=request.getParameter("opcao");booleanbExist=daoFornecedor.selectNomeFantasiaFornecedorBoolean(fornecedorForm.getNomeFantasia());// Se for alterar e não existe no BDif(fornecedorForm.getOpcao().equals("ALTERAR")&&!bExist){System.out.println("** Fornecedor Inexistente para Alteração! **");ActionMessageerror=newActionMessage("error.alteracao");errors.add(ActionMessages.GLOBAL_MESSAGE,error);saveErrors(request,errors);returnnewActionForward(mapping.getInput());}if(opcao.equals("ALTERAR")){fornecedorForm.setId(IdFornecedor);intflagUpdate=daoFornecedor.update(fornecedorForm);fornecedorForm.setId(Integer.toString(flagUpdate));// Verifica se ocorreu alteração do fornecedor e encaminha msg de sucesso para a JSP.if(flagUpdate>0){sucesso.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("sucesso.fornecedorAlteradoComSucesso"));saveMessages(request,sucesso);returnmapping.findForward(ConstantsUtil.FWD_SUCESSO_ALTERAR_FORNECEDOR);}else{System.out.println("ATUALIZAÇÃO NAO REALIZADA!");}}// Põe na sessão o resultado o fornecedorForm PopuladoHttpSessionsession=request.getSession();session.setAttribute("fornecedorForm",fornecedorForm);returnmapping.findForward(ConstantsUtil.FWD_SUCESSO_ALTERAR_FORNECEDOR);}}
I
Igor_Franco
Porq que o Struts não “reconhece” o DispatchAction amigos?
Vlw!
I
Igor_Franco
Amigos, descobri porq que a classe DispatchAction não estava sendo reconhecido no meu projeto, era porq não tinha o arquivo struts-extras.jar. Agora já está sendo reconhecido, mas ainda não funciona. O método não é achado dentro da classe LoginAction, oq pode ser amigos?
packagebr.com.sce.controller.action.login;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.actions.DispatchAction;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.ActionMessage;importorg.apache.struts.action.ActionMessages;importbr.com.sce.business.dao.usuario.UsuarioDAO;importbr.com.sce.business.vo.login.LoginVO;importbr.com.sce.business.vo.usuario.UsuarioVO;importbr.com.sce.resources.ConstantsUtil;publicclassLoginActionextendsDispatchAction{publicActionForwardlogin(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{System.out.println("*** LoginAction ***");UsuarioDAOdaoUsuario=newUsuarioDAO();LoginVOloginVO=(LoginVO)form;booleanvalida=false;// Retorno do BD validando o acessoActionMessageserrors=newActionMessages();System.out.println("getLogin: "+loginVO.getLogin());System.out.println("getSenha: "+loginVO.getSenha());if(loginVO.getLogin()==null||loginVO.getLogin().trim().equals("")){// trim tira os espaços em brancoerrors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("error.login"));}if(loginVO.getSenha()==null||loginVO.getSenha().equals("")){errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("error.senha"));}if(errors.size()!=0){saveErrors(request,errors);System.out.println("Erro no Preenchimento do Login ou Password!");returnnewActionForward(mapping.getInput());}else{System.out.println("Login ou Password Preenchidas corretamente!");System.out.println("Vai no banco validar Login e Password!");valida=daoUsuario.verificaUsuario(loginVO.getLogin(),loginVO.getSenha());UsuarioVOverificaNivelUser=daoUsuario.verificaNivelUsuario(loginVO.getLogin());System.out.println("loginBean.getNivel(): "+verificaNivelUser.getId());// Retorno da validação do Login Senha no BDif(valida&&verificaNivelUser.getId().equals("1")){// Se validado OKSystem.out.println("NIVEL 1!");HttpSessionsession=request.getSession();session.setAttribute("loginBean",loginVO);returnmapping.findForward(ConstantsUtil.FWD_SUCESSO);}if(valida&&verificaNivelUser.getId().equals("2")){System.out.println("NIVEL 2!");returnmapping.findForward(ConstantsUtil.FWD_SUCESSO);}else{System.out.println("Login ou Password invalido no BD!");errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage("error.validador"));saveErrors(request,errors);returnnewActionForward(mapping.getInput());}}}}