Configuração do Struts 2

Opa galera!
Seguinte, estou iniciando um projeto usando Struts 2 e estou com o seguinte problema…
Sempre que chamo login.jsp, o servidor diz que não consegue encontrar a action mapeada (“There is no Action mapped for namespace /manterUsuario and action name ManterUsuario.”).

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
	    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=manterUsuario/ManterUsuario.action">
	</head>
	<body>
		<p>
			Carregando ...
		</p>
	</body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <include file="manterusuario.xml"/>
    
</struts>

manterusuario.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
        
<struts>

    <package name="manterUsuario" namespace="/manterUsuario" extends="struts-default">
        <action name="ManterUsuario" class="org.teste.uc.manterusuario.ManterUsuarioAction">
            <result>/WebContent/jsp/teste/manterUsuario.jsp</result>
        </action>
    </package>
    
</struts>

Como vc config seu web xml ???

Ex:

<filter-mapping>
		<filter-name>contexto</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>
	<!-- O filtro struts2 deve ser mapeado por ultimo, pois bloqueia os filtros posteriores -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

ai a chamanda fica /nomeAction.action

[code]
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

&lt;display-name&gt;Struts Blank&lt;/display-name&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;welcome-file-list&gt;
    &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

</web-app>
[/code][/code]

Já consegui configurar…era pau do SunAppServer… :evil:
Valeu!!!

Bom…pra não abrir outro tópico vou usar esse mesmo.
To querendo usar o Validation. Eu tenho que fazer alguma configuração além de criar TesteAction-validation.xml e botar no mesmo diretório que TesteAction?

&lt;%@ page contentType=&quot;text/html; charset=UTF-8&quot; %&gt;
&lt;%@ taglib prefix=&quot;s&quot; uri=&quot;/struts-tags&quot; %&gt;
&lt;html&gt;
	&lt;head&gt;
	    &lt;title&gt;
	    	Teste
	    &lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;s&#58;form action=&quot;Teste&quot; method=&quot;post&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan=&quot;2&quot;&gt;
					&lt;s&#58;actionerror /&gt;
					&lt;s&#58;fielderror /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		    &lt;s&#58;textfield label=&quot;Teste&quot; name=&quot;teste&quot;/&gt;
		    &lt;s&#58;submit value=&quot;Testar&quot;/&gt;
		&lt;/s&#58;form&gt;
	&lt;/body&gt;
&lt;/html&gt;
&lt;!DOCTYPE validators PUBLIC &quot;-//OpenSymphony Group//XWork Validator 1.0.2//EN&quot; &quot;http&#58;//www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd&quot;&gt;

&lt;validators&gt;

	&lt;field name=&quot;teste&quot;&gt;
		&lt;field-validator type=&quot;requiredstring&quot;&gt;
			&lt;param name=&quot;trim&quot;&gt;true&lt;/param&gt;
			&lt;message&gt;Funcionou!!!&lt;/message&gt;
		&lt;/field-validator&gt;
	&lt;/field&gt;

&lt;/validators&gt;
package org.teste;

public class TesteAction extends ActionSupport &#123;
	
	private static final long serialVersionUID = 1L;
	private String teste;
	
	public String getTeste&#40;&#41; &#123;
		return this.teste;
	&#125;
	public void setTeste&#40;String teste&#41; &#123;
		this.teste = teste;
	&#125;
	
&#125;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;!DOCTYPE struts PUBLIC &quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quot; &quot;http&#58;//struts.apache.org/dtds/struts-2.0.dtd&quot;&gt;
        
&lt;struts&gt;

    &lt;package name=&quot;teste&quot; namespace=&quot;/teste&quot; extends=&quot;struts-default&quot;&gt;
        &lt;action name=&quot;Teste&quot; class=&quot;org.teste.TesteAction&quot;&gt;
            &lt;result&gt;/jsp/sucesso.jsp&lt;/result&gt;
	    &lt;result name=&quot;input&quot;&gt;/jsp/teste.jsp&lt;/result&gt;
            &lt;result name=&quot;error&quot;&gt;/jsp/teste.jsp&lt;/result&gt;
        &lt;/action&gt;
    &lt;/package&gt;
    
&lt;/struts&gt;