wag_ferreira 21 de nov. de 2008
Cara,
Acho que você tem que chamar seu metodo assim EX.: execute.action
So iniciante com Struts 2 e to tendo problemas em fazer meu jsp reconhecer minha action.
Quando aberto no meu button, ele não dispara a minha action, não sei o que estou errando.
Em vez de ele chamar minha action, ele ta dando um submit e me redirecionando para uma outra tela…
não sei o que realmente está acontece…
Preciso de ajuda com isso para hoje.
wag_ferreira 21 de nov. de 2008
Está assim meu codigo.
< s:form>
< div id="tabs4">
<ul>
< !-- CSS Tabs -->
<li ><a > < span> Cadastros< /span> </a></li>
<li><a > < span> Adm/Fin< /span> </a></li>
<li><a > < span> Fiscais< /span> </a></li>
<li><a > < span> Vendas< /span> </a></li>
<li><a > < span> Contatos< /span> </a></li>
</ul>
< /div>
< table width="100%" border="0" cellspacing="0" cellpadding="0">
< tr>
< td >
< div dojoType="dijit.Toolbar">
< div dojoType="dijit.form.Button" iconClass="Consultar" showLabel="true" onclick=""> Consultar< /div>
< /div>
< /td>
< /tr>
< /table>
< table width="100%" cellpadding="0" cellspacing="1" border="0" >
< s:submit action="consultaCliente" value="CONSULTAR"/>
< tr>
< td width="150" align="right" class="forme"> Codigo < /td>
< td width="200" class="forme" >
< s:textfield theme="simple" name="manterClientesVO.cdCliente" cssClass="input" id="cdCliente" size="10"/>
<img >
< /td>
< td align="right" class="forme" > Loja < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.cdLoja" cssClass="input" id="cdLoja" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Nome < /td>
< td colspan="2" class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmNome" cssClass="input" id="nmNome" size="60"/>
< /td>
< td class="forme" > < /td>
< /tr>
< tr>
< td class="forme" align="right"> Tipo < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmTipoCliente" cssClass="input" id="nmTipoCliente" size="40"/>
< /td>
< td align="right" class="forme" > Bloqueado < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmBloqueado" cssClass="input" id="nmBloqueado" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Fisica/Jurid < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmTipoPessoa" cssClass="input" id="nmTipoPessoa" size="40"/>
< /td>
< td align="right" class="forme" > < /td>
< td class="forme" > < /td>
< /tr>
< tr>
< td class="forme" align="right"> N Fantasia < /td>
< td colspan="2" class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmFantasiaReduz" cssClass="input" id="nmFantasiaReduz" size="60"/>
< /td>
< td class="forme" > < /td>
< /tr>
< tr>
< td class="forme" align="right"> Endereco < /td>
< td colspan="2" class="forme">
< s:textfield theme="simple" name="manterClientesVO.endereco" cssClass="input" id="endereco" size="60"/>
< /td>
< td valign="middle" class="forme" > < /td>
< /tr>
< tr>
< td class="forme" align="right"> Municipio < /td>
< td class="forme">
< s:textfield theme="simple" name="manterClientesVO.nmMunicipio" cssClass="input" id="nmMunicipio" size="40"/>
< /td>
< td align="right" class="forme" > Estado < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmEstado" cssClass="input" id="nmEstado" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Pais < /td>
< td class="forme">
< s:textfield theme="simple" name="manterClientesVO.nmPais" cssClass="input" id="nmPais" size="40"/>
< /td>
< td align="right" class="forme" > DDI < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.cdDdi" cssClass="input" id="cdDdi" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Telefone < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nrTelefone" cssClass="input" id="nrTelefone"/>
< /td>
< td align="right" class="forme" > CEP < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nrCep" cssClass="input" id="nrCep" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> FAX < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nrFax" cssClass="input" id="nrFax" size="20"/>
< /td>
< td align="right" class="forme" > Dt Abert/Nasc < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.dtAberNasc" cssClass="input" id="dtAberNasc" size="10"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> CNPJ/CPF < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.cnpjCpf" cssClass="input" id="cnpjCpf" size="40"/>
< /td>
< td align="right" class="forme" > Ins. Estad < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.inscEstadual" cssClass="input" id="inscEstadual" size="20"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> RG/Ced Estr < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.rgCedEst" cssClass="input" id="rgCedEst"/>
< /td>
< td align="right" class="forme" > Ins. Municip < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.inscMunicipio" cssClass="input" id="inscMunicipio" size="20"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Home-Page < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.homePage" cssClass="input" id="homePage" size="40"/>
< /td>
< td align="right" class="forme" > Ins Rural < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.inscRual" cssClass="input" id="inscRual" size="20"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> E-mail < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.email" cssClass="input" id="email" size="40"/>
< /td>
< td align="right" class="forme" > Contato < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.contato" cssClass="input" id="contato" size="20"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Home Page < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.homePage" cssClass="input" id="homePage" size="40"/>
< /td>
< td align="right" class="forme" > Cod CBO < /td>
< td class="forme" >
< s:textfield theme="simple" name="manterClientesVO.cdCbo" cssClass="input" id="cdCbo" size="20"/>
< /td>
< /tr>
< tr>
< td class="forme" align="right"> Complemento < /td>
< td colspan="3" class="forme" >
< s:textfield theme="simple" name="manterClientesVO.nmComplemento" cssClass="input" id="nmComplemento" size="80"/>
< /td>
< /tr>
< /table>
< /s:form>
< /body>
< /html>
minha acition
package com.action ;
import com.isdra.gcr.persistence.Conexao ;
import com.isdra.gcr.service.ManterClientesService ;
import com.isdra.gcr.vo.ManterClientes ;
import com.opensymphony.xwork2.ActionSupport ;
/**
*
* @author wagner.ferreira
*/
public class ManterClientesAction extends ActionSupport {
private ManterClientes manterClientesVO ;
public ManterClientesAction () {
}
public String consultaCliente () throws Exception {
Conexao con = new Conexao ();
con . getConnection ();
ManterClientesService manterClientesService = new ManterClientesService ();
manterClientesVO = manterClientesService . findManterClientes ( manterClientesVO );
return "success" ;
}
public ManterClientes getManterClientesVO () {
return manterClientesVO ;
}
public void setManterClientesVO ( ManterClientes manterClientesVO ) {
this . manterClientesVO = manterClientesVO ;
}
}
meu struts.xml
& lt ; struts & gt ;
& lt ; constant name = "struts.enable.DynamicMethodInvocation" value = "false" /& gt ;
& lt ; constant name = "struts.devMode" value = "true" /& gt ;
& lt ; package name = "action" extends = "struts-default" & gt ;
& lt ; action name = "consultaCliente" class = "com.action.ManterClientesAction" method = "consultaCliente" & gt ;
& lt ; result name = "success" & gt ; manterclientes / manterclientecadastros . jsp & lt ; / result & gt ;
& lt ; / action & gt ;
& lt ; / package & gt ;
& lt ; / struts & gt ;
O que é que estou fazendo de errado???
Rachel_Vital 21 de nov. de 2008
Olá Ladim,
pelo que eu entendi vc quer executar sua action antes de carregar a pagina.
Não entendi o porque de fazer isso no metodo onload da pagina.
A forma mais simples de fazer isso é vc chamar a action ao invés da pagina e na action dá um forward para o JSP.