Struts 2 não esta chamando a action[resolvido]

6 respostas
wag_ferreira

Estou com um problema no meu struts 2 que eu não estou conseguindo chamar minha action.
Ja configurei meu struts.xml
que esta assim:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
    <constant name="struts.devMode" value="true" />
    
    <package name="action" extends="struts-default">

    <action name="consultaCliente" class="com.action.ManterClientesAction" method="consultaCliente">
         <result name="success">manterclientes/manterclientecadastros.jsp</result>
    </action>

    </package>
</struts>

e minha action esta assim:

[code]
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;
    }
}

Preciso resolver isto...
Podem me ajudar....

no meu jsp eu tenho um button que esta configurado assim:

<s:submit action="consultaCliente" value="CONSULTAR"/>

e meus textfilds eestão assim:

<s:textfield theme="simple" name="manterClientesVO.cdCliente" cssClass="input" id="cdCliente" size="10"/>

6 Respostas

edysnipes

Fala Ferreira.

No struts.xml adicione uma símbolo, no caso exclamação, depois do apelido da action e tire o parametro method.

<action name="consultaCliente!*" class="com.action.ManterClientesAction">   
       <result name="success">manterclientes/manterclientecadastros.jsp</result>   
</action>

aqui no submit coloque assim.

<s:submit action="consultaCliente!consultaCliente.action" value="CONSULTAR"/>

acho que resolve.

R

edysnipes:
Fala Ferreira.

<s:submit action="consultaCliente!consultaCliente.action" value="CONSULTAR"/>

acho que resolve.


Opa ! O atributo action não é na tag s:submit … é em

<s:form action="consultaCliente!consultaCliente.action" method="post" >

Outra coisa … para o formulário submeter para a action, verifique se vc mapeou os listener do struts2 no seu arquivo web.xml

- <filter>
  <filter-name>struts2</filter-name> 
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
  </filter>
- <filter-mapping>
  <filter-name>struts2</filter-name> 
  <url-pattern>/*</url-pattern> 
  </filter-mapping>

:wink:

wag_ferreira

ta muito estranho, pois não esta funcionando ainda.

O caso é que quando eu clico no

&lt;s:submit action="consultaCliente!ManterClientesAction.action" value="CONSULTAR" method="post"/&gt;

Nem dispara minha action. A questão que inves de ele chamar minha action ta chamando isto:

HTTP Status 404 - /WebGCR/manterclientecadastros.jsp

--------------------------------------------------------------------------------

type Status report

message /WebGCR/manterclientecadastros.jsp

description The requested resource (/WebGCR/manterclientecadastros.jsp) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.

ta dando este erro!!

meu web.xml é este

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;struts2&lt;/filter-name&gt;
        &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;
    &lt;/filter&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;struts2&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;
    &lt;session-config&gt;
        &lt;session-timeout&gt;
            30
        &lt;/session-timeout&gt;
    &lt;/session-config&gt;
    &lt;welcome-file-list&gt;
        &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
        &lt;/welcome-file-list&gt;
    &lt;/web-app&gt;

valeu ai pela atençãooo

MASSS TO PRECISANO URGENTE ISTO

R

Isso está errado !

<!-- Não existe o atributo action na tag s:submit -->
 <s:submit action="consultaCliente!ManterClientesAction.action" value="CONSULTAR" method="post"/>

O atributo action fica na tag s:form

<s:form action="consultaCliente!ManterClientesAction.action" > <!-- Campos --> <s:submit value="ENVIAR"/> </s:form>

wag_ferreira

Cara, valeuuuu tu me ajudou, na real todos me ajudaram.

Agora o problema é, como é que eu starto o minha action atraves de uma function.

no caso eu tentei assim.

document.submit('consultaCliente.action');
ou
document.submit('consultaCliente');

mas nenhuma das duas foram boas tentativas.

wag_ferreira

Resolvidoooo

ficou assim

document.consultaCliente.submit('consultaCliente');

Valeu GALERA pela ajuda…

Criado 21 de novembro de 2008
Ultima resposta 21 de nov. de 2008
Respostas 6
Participantes 3