Tags do Struts

6 respostas
abelgomes

Bom dia pessoal, é o seguinte…quero associar um botao na minha tela com um metodo na minha action…mas nao estou conseguindo…
essa é a minha pagina:
<html:form action="/contatoAction">


Nome:
<html:text title=“Nome do contato” property=“nome” />



Telefone:
<html:text title=“Telefone do contato” property=“telefone” />



Endereço:
<html:text title=“Endereço do contato” property=“endereco” />


<html:submit value=“Salvar” title=“Salvar Contato”/>
html:errors/
</html:form>

eu quero que quando apertar no botao chame meu metodo ao inves do “execute” que já default…
na minha action só tenho o execute…

agradeço desde já…

6 Respostas

fnandos

No struts o submit tem a property action onde você faria

não sei se é aplicável neste caso, mas é uma questão de teste.

abelgomes

nao funcionou nao…pq nem tem essa opção action=“action_metodo”/>…mas valeu a tentativa…

D

Aonde tem action_metodo, você deve colocar seu action!

D
Segue um exemplo:
<html:html>
<head><title>Adicionar um Bug</title></head>
<html:errors/>
<html:form action="/novoBug" >

NomeUix do Projeto:
<html:text property="bug.nomeUnix"/>
<br/>
id:
<html:text property="bug.id"/>
<br/>
Titulo:
<html:text property="bug.titulo"/>
<br/>
Prioridade:
<html:text property="bug.prioridade"/>
<br/>
Descricao:
<html:text property="bug.descricao"/>
<br/>
status:
<html:text property="bug.status"/>
<br/>
usuario:
<html:text property="bug.usuario"/>
<br/>
<html:submit>Enviar dados</html:submit>
<br/>
</html:form>
</html:html>
abelgomes

blz diegogurjao achei o exemplo bacana, mas como vc faria para associar um metodo qualquer aquele botao enviar dados…pq pelo jeito que estar lá vc esta associando seu botao com o metodo default “execute”…

oque eu kero fazer é o seguinte: Criar um CRUD, mas na minha tela principal eu quero ter 4 botoes…como eu vou associar cada um desses botoes, há metodos especificos da minha action? :?

obrigado pela atenção

abelgomes

Depois de muita pesquisa consegui resolver a bronca usando LookupDispatchAction

minha action ficou assim:
public class ContatoAction extends LookupDispatchAction {

/* forward name="success" path="" */
private final static String SAVE = "save";
private final static String DELETE = "delete";
private final static String UPDATE = "update";
private final static String SEARCH = "search";

protected Map getKeyMethodMap() {
    Map map = new HashMap();
    map.put("button.save","save");
    map.put("button.update","update");
    map.put("button.delete","delete");
    map.put("button.search","search");
    return map;
}
public ActionForward save(ActionMapping mapping, ActionForm  formulario,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    ContatoActionForm form = (ContatoActionForm) formulario;
    Contato contato = new Contato();
    ContatoDao dao = new ContatoDao();
    contato.setNome(form.getNome());
    contato.setEndereco(form.getEndereco());
    contato.setTelefone(form.getTelefone());
    dao.salvar(contato);
    
    return mapping.findForward(SAVE);
    
}

public ActionForward update(ActionMapping mapping, ActionForm  formulario,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    ContatoActionForm form = (ContatoActionForm) formulario;
    Contato contato = new Contato();
    ContatoDao dao = new ContatoDao();
    contato.setNome(form.getNome());
    contato.setEndereco(form.getEndereco());
    contato.setTelefone(form.getTelefone());
    dao.atualizar(contato);
    
    return mapping.findForward(UPDATE);
    
}........

minha JSP Ficou assim:

<html:submit property=“method”>
<bean:message property=“contatoAction” key=“button.save”/>
</html:submit>

lembrando que temos que adicionar la nos arquivo de propriedades do struts se nao nao vai rodar…adicionei isso:
button.save=Salvar
button.update=Atualizar
button.delete=Excluir
button.delete=Pesquisar

ta rodando tudo blz…

valeu ai galera e boa sorte a todos!

Criado 17 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 6
Participantes 3