Problema XML Struts2

4 respostas
magemelli

Daê galera, blz...
Tô com um problema na parte no Struts.xml, uso o struts2, e tenho 2 métodos na mesma classe...
O formulário JSP é esse :

<%@ taglib prefix="s" uri="/struts-tags" %>

    <s:form action="entradaAction!cadastroAnimal" theme="ajax">
        <s:textfield name="nome" label="Nome do Animal">
        <s:textfield name="especie" label="Especie">
        <s:datetimepicker name="dataEntrada" label="Data Inicial" displayFormat="dd-MM-yyyy"/>
        <s:textfield name="Sintoma" label="Sintoma">
        <s:submit/>
    </s:form>
eis o xml..
<struts>
    <include file="Struts-default.xml"/>
    <package name="default" extends="struts-default, jfreechart-default">
        <action name="entrada" class="marco.struts.action.entradaAction">
            <result>entrada.jsp</result>
        </action>
        <action name="saida" class="marco.struts.action.saidaAction">
            <result>saida.jsp</result>
            <result name="graficoSucesso" type="chart">
                <param name="width">400</param>
                <param name="height">300</param>
            </result>
         <action name="cadastroSucesso" mothod="{1}" class="marco.struts.action.entradaAction">
             <result>cadastro.jsp</result>
         </action>
        </action>
    </package>
</struts>

E a minha action

public String execute(){
        setPorMes(entradaDao.getEntradasPorMes());
        setPorAno(entradaDao.getEntradasPorAno());
     //   setPorPeriodo(entradaDao.getEntradasPorPeriodo());
        return "success";
    }

    public String cadastraAnimal(){
        entradaDao.cadastroAnimal(getAnimalEntrada());
        return "cadastroSucesso";
    }

O Problema é

Attribute "mothod" must be declared for element type "action". at (null:24:96)
org.xml.sax.SAXParseException: Attribute "mothod" must be declared for element type "action".

Quem puder ajudar Muito OBRIGADO

4 Respostas

mgarcia

Opa…
Seguinte… vc escreveu errado… vc escreveu “mothod” o correto é “method”…
isso deve resolver o seu problema com o struts.xml…

mas pelo q vi sua parametrização no struts.xml tb não está correta… se vc quiser usar wildcards da forma q está fazendo, acredito q o correto seria algo mais ou menos parecido com o seguinte:

<action name="entrada!*" method="{1}" class="marco.struts.action.entradaAction">  
       <result>entrada.jsp</result>
</action>

Abç

magemelli
mgarcia:
Opa.. Seguinte.. vc escreveu errado.. vc escreveu "mothod" o correto é "method"... isso deve resolver o seu problema com o struts.xml...

mas pelo q vi sua parametrização no struts.xml tb não está correta.. se vc quiser usar wildcards da forma q está fazendo, acredito q o correto seria algo mais ou menos parecido com o seguinte:

<action name="entrada!*" method="{1}" class="marco.struts.action.entradaAction">  
       <result>entrada.jsp</result>
</action>

Abç

Olá Amigo, Obrigado, deu certo sim... mas na hora de colocar o cadastro.jsp ele dá que o não está balanceado...

<%@ taglib prefix="s" uri="/struts-tags" %>
<div align="center" style="border: 1px solid black; padding-top: 10px; width: 40%;">
    <s:form action="entradaAction!cadastroAnimal" theme="ajax">
        <table>
            <s:textfield name="nome" label="Nome do Animal">
            <s:textfield name="especie" label="Especie">
            <s:datetimepicker name="dataEntrada" label="Data Inicial" displayFormat="dd-MM-yyyy">
            <s:textfield name="Sintoma" label="Sintoma">
            <s:submit/>
        </table>
    </s:form>
</div>

como resolvo esse problema?

mgarcia

Então… vc esqueceu de fechar as tags dos elementos do form…

segue o correto:

<%@ taglib prefix="s" uri="/struts-tags" %>  
<s:head theme="ajax"/>
<div align="center" style="border: 1px solid black; padding-top: 10px; width: 40%;">  
<s:form action="entradaAction!cadastroAnimal" theme="ajax">  
            <table>  
                <s:textfield name="nome" label="Nome do Animal"/>  
                <s:textfield name="especie" label="Especie"/>  
                <s:datetimepicker name="dataEntrada" label="Data Inicial" displayFormat="dd/MM/yyyy"/>  
                <s:textfield name="Sintoma" label="Sintoma"/>  
                <s:submit/>  
           </table>  
       </s:form>  
   </div>

vc pode ver que todos os textfield, datetimepicker estão sendo fechados…
além disso… sempre que utilizar o theme ajax em algum local de sua página, é obrigatório utilizar a tag <s:head theme=“ajax”/>

Abç

magemelli

Consegui!! Obrigado!!!

Criado 16 de junho de 2009
Ultima resposta 16 de jun. de 2009
Respostas 4
Participantes 2