Uma action vários métodos ! STRUTS

2 respostas
V

Pessoal !!!

Depois de muita briga consegui montar uma action que inclui altera pesquisa deleta…

<action path="/produtoservlet" name="ProdutoForm"               
            scope="request"                 
            parameter="acao"                 
            input="/ProdutoIncluir.jsp"
            type="br.com.empresa.action.ProdutoServlet"
       validate="true">             

    	   <forward name="ProdutoIncluir"    path="/ProdutoIncluir.jsp"/>
    	   <forward name="ProdutoAtualizar"  path="/ProdutoAtualizar.jsp"/>
    	   <forward name="ProdutoPesquisar"  path="/ProdutoPesquisar.jsp"/>
           <forward name="PaginaErro"        path="/PaginaErro.jsp"/>
    </action>

Legal !!! Criei os jsps , tudo blz !!! Coloquei o metodo validate no produtoform !!!

Coloquei um if p/ validar somente se for inclusao ou alteracao , BLZ !!!

if  ((stringVazia(descricao))&&

((acao.equals(incluir))||(acao.equals(atualizar))) ){

erros.add(descricao”, new ActionMessage(erro.campoDescricao));

MAS CAI EM UM PROBLEMA !!!

QDO É INCLUSÃO BLZ mas qdo é alteração volta p/ jsp de inclusao e nao de alteração como deveria…está correto porque coloquei no struts-config input=produtoincluir.jsp

Alguem sabe se é possivel fazer de outra maneira ?? Ou ter mais de um input ???

ou ainda deixar validate=false e controlar na mao a validacao !!! Não sei se valeria a pena.Criaria uma lista com erros e fazia um iterator na pagina jsp !!!

Meu objetivo é ter apenas uma action !!! P/ nao ter produtoincluiraction produtoalteraraction etc etc

Abraço !!! Valmir

2 Respostas

eduardo_lopes

use a mesma página para alterar e incluir, apenas mude o action de acordo com a solicitação.

Mauricio_Linhares

Você abre duas vezes tópicos diferentes pra mesma pergunta companheiro?

Se você quer o mesmo action pra fazer diversas coisas, é melhor usar o MappingDispatchAction, porque senão você vai ter que fazer toda a validação na mão mesmo, já que existe apenas um mapeamento pra todos os métodos do action e consequentemente o mesmo ActionForm par todos eles.

Usando o MappingDispatchAction você vai poder fazer usar forms diferentes e até mesmo não usar form nenhum, chamando os métodos de ação do action. Veja a definição dele:

http://struts.apache.org/api/org/apache/struts/actions/MappingDispatchAction.html

Quando eu preciso desse tipo de funcionamento, usando vários forms, sempre uso ele.

Criado 21 de maio de 2005
Ultima resposta 21 de mai. de 2005
Respostas 2
Participantes 3