Duvida no struts

3 respostas
R

e ai pessoal blz, estou começando no struts e gostaria de tirar a seguinte duvida:

  • eu tenho as seguintes paginas jsp cadatrar, editar, pesquisar, excluir, como eu posso fazer para definir um unico action no struts-config.xml, dizendo para qual pagina tem que ser apontada de acordo com qual botao eu clicar em uma pagina index.jsp?

abaixo vou colocar uma parte do struts-config que eu encontrei em um exemplo que acredito que seja ele que tenha que estar usando:

<action
            path="/funcionario"
            name="funcionarioForm"
            type="br.com.action.funcionarioAction"
            input="funcionarioForm"
            scope="request"
            parameter="op"
            validate="true">
            <forward name="pesquisar" path="/do/showpage?page=Pesquisar" />
            <forward name="incluir"   path="/do/showpage?page=Incluir"   />
            <forward name="alterar"   path="/do/showpage?page=Alterar"   />            
            <forward name="excluir"   path="/do/showpage?page=Excluir"   />                                  
        </action>

O problema eh como colocar no botao onde para qual pagina indicar?

valeu pela ajuda

3 Respostas

C

Use outro action (DispatchAction ou MappingDispatchAction), que daí vc poderá fazer isso.
Consulte a API do struts, q explica com exemplo bem simples.
Segue link da API ref. struts 1.2.9:
http://struts.apache.org/1.2.9/api/index.html

R

andei dando uma olhada em alguns tutoriais e exemplos e pelo que vi fica assim:
struts-config.xml

<action
            path="/Funcionario"
            name="funcionarioForm"
            type="org.fun.action.funcionarioAction"
            input="funcionarioForm"
            scope="request"
            parameter="op"
            validate="true">
            
            <forward name="pesquisar" path="/pages/funcionario/pesquisar.jsp" />
            <forward name="cadastrar" path="/pages/funcionario/cadastrar.jsp" />
            <forward name="editar"    path="/pages/funcionario/editar.jsp"    />            
            <forward name="excluir"   path="/pages/funcionario/excluir.jsp"   />  
        </action>    
	</action-mappings>

action

public final class funcionarioAction extends Action {

	public ActionForward cadastrar (ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
	return (mapping.findForward("cadastrar"));
	}
	
	public ActionForward editar (ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
	return (mapping.findForward("editar"));
	}
	
	public ActionForward pesquisar (ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
	return (mapping.findForward("pesquisar"));
	}	
	
	public ActionForward excluir (ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
	return (mapping.findForward("excluir"));
}	
}

o problema eh que na pagina jsp eu nao intendo como vou fazer para informar qual o op que eu quero, se eh cadastrar, editar, excluir, pesquisar.

valeu pela ajuda pessoal

LeoMarola

Bom dia Rafael

Experimente por:

parameter=“metodo”

em seu Action mapeado, lá no struts-config.xml

Exemplo:

<action path="/classe" type="tipo.classeAction" name="classeForm" parameter="metodo" validate="false" scope="session"> <forward name="iniciar" path="/classe.do?metodo=iniciar" /> </action>

no seu Form:

Abraços! :wink:

Criado 5 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 3
Participantes 3