Rapazia é o seguinte.
to com uma duvida a respeito do execute,
todos os tutorias que li sobre struts utilzando o meto execute,
mais se eu quizer criar um outro método e chamar direto da jsp
tipo INCLUIR.
Tem como;
Rapazia é o seguinte.
to com uma duvida a respeito do execute,
todos os tutorias que li sobre struts utilzando o meto execute,
mais se eu quizer criar um outro método e chamar direto da jsp
tipo INCLUIR.
Tem como;
cara…tb tive esse mesmo problema uns tempos atraz…só consegui resolver usando DispathAction ao inves de Action como superclasse…
entao no .properties vc deifine o nome dos botaoes e na action, um map com as opcoes…assim:
no aquivi properties
button.save=Salvar
button.delete=Excluir
button.search=Pesquisar
button.edit=Editar
button.teste=Testar
button.console=Imprimir no Console
na action
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";
private final static String CANCEL = "cancel";
private final static String EDIT = "edit";
private static Integer idContato = null;
protected Map getKeyMethodMap() {
Map map = new HashMap();
map.put("button.save","save");
map.put("button.delete","delete");
map.put("button.search","search");
map.put("button.edit","edit");
map.put("button.teste","teste");
map.put("button.console","console");
return map;
}
public ActionForward save(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, HttpServletResponse response)
{
return mapping.findForward(UPDATE);
}
}
public ActionForward delete(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, HttpServletResponse response)
{
return mapping.findForward(DELETE);
}
public ActionForward search(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, {
return mapping.findForward(SEARCH);
}
public ActionForward edit(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, HttpServletResponse response)
{
return mapping.findForward(EDIT);
}
public ActionForward teste(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, HttpServletResponse response){
return mapping.findForward(SEARCH);
}
public ActionForward console(ActionMapping mapping, ActionForm formulario,
HttpServletRequest request, HttpServletResponse response) {
return mapping.findForward(SEARCH);
}
}
e na jsp
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<html >
<head>
</head>
<body bgcolor="white">
<h1>Cadastrar Contato</h1>
<html:form action="/contatoAction">
<p>
<label>Nome:
<html:text title="Nome do contato" property="nome" />
</label>
</p>
<p>
<label>Telefone:
<html:text title="Telefone do contato" property="telefone" />
</label>
</p>
<p>
<label>Endereço:
<html:text title="Endereço do contato" property="endereco" />
</label>
</p>
<html:submit property="method" title="Salvar Dados do Contato">
<bean:message property="contatoAction" key="button.save" />
</html:submit>
<html:reset value="Limpar" title="Limpar todos os Campos"/>
<html:button onclick="window.location ='index.jsp'" property="btnCancel" value="Cancelar" title="Voltar para Tela Inicial"/>
<html:errors/>
</html:form>
</body>
</html>
nao repare em alguns detalhes pois esse codigo é de qaundo estav aprendendo Struts…
espero ter ajudado
Legal cara, muito obrigado, vai ser de muita ajuda sim, e arrespeito do seu codigo não esquenta não.
Vc pode tranquilamente declarar quantos metodos quiser dentro da classe de sua action, basta no struts.xml vc declarar o nome da action o nome do metodo que aquela action ira invocar.
Na verdade eu nem uso esse metodo execute nas minhas actions, declaro os nomes do metodos que quero.
Segue abaixo um exemplo:
minha action
public class VigenciaAction extends ActionSupport implements SessionAware
{
public String inicializaConsultar()
{
return SUCCESS;
}
public String executaConsultar()
{
return SUCCESS;
}
}
no meu struts.xml
Consultar.jsp Consultar.jsp <action name="vigenciaListar" class="br.com.diego.VigenciaAction" method="executaConsultar">
<result>Listar.jsp</result>
<result name="input">Listar.jsp</result>
</action>
Cara, esse modo como voce faz é muito bão,
muito obrigado pela dica.
Valeu mesmo.
Falow, precisando tamos ai !!
Abraço.