Duvida no struts[resolvido]

8 respostas
dijava

pessoal to aprendendo struts !!! e estou acompanhando pelo livro struts em acao(struts 1), bom ja fiz o primeiro exemplo, mas nao esta direcionando para a pagina de sucesso ou falha e fica travado no “http://localhost:8080/Struts/register.do” sera q estou digitando algo errado no strurs-config.xml ? ele esta assim

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">

<struts-config>

  <form-beans>
    <form-bean name="registerForm" type="app.RegisterForm"/>
  </form-beans>
 
  <action-mappings>
    <action    path="/register"
               type="app.RegisterAction"
               name="registerForm">
      <forward name="success" path="/success.html"/>
      <forward name="failure" path="/failure.html"/>
    </action>
  </action-mappings>
</struts-config>

a estrutura é

8 Respostas

dijava

^

thundercas

dijava, você chegou a definir no config que a extensão a ser utilizada para o mapeamento struts é .do??

Outra coisa, faltou você postar o trecho do seu código onde está direcionando para “success” ou “failure”.

dijava

o web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

  <!-- Action Servlet Configuration -->
  <servlet>
   <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Action Servlet Mapping -->

 <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>

</web-app>

a classe q encaminha!!!

public class RegisterAction extends Action{
	
	public ActionForward peform (ActionMapping mapping,ActionForm form,HttpServletRequest req,HttpServletResponse res){
		RegisterForm rf = (RegisterForm)form;
		
		String username = rf.username;
		String password1 = rf.password1;
		String password2 = rf.password2;
		
		if(password1.equals(password2)){
			try {
				UserDirectory.getInstance().setUser(username,password1);
				return mapping.findForward("success");
			} catch (Exception e) {
				return mapping.findForward("failure");
			}
		}
			
		return mapping.findForward("failure");
		
	}
}
dijava

^

dijava

turma alguem pode ajudar realamente ainda nao encontrei o motivo, eu acho q o mapeamento pode estar errado pq depois que eu clico no botao para submeter ele vai para “http://localhost:8080/Struts/register.do;jsessionid=303F032C1F04AC0B3F7E73A9B6A28208” e nao sai daí acho q ele nao esta nem achando minha classe “Action” alguem pode dar uma luz ai, os xml e a classe ja estão postados eu coloquei um breakpoint na minha classe Action e ele nao para la nao esta encontrando ela mas nao sei o q esta errada na configuracao alguem pode dar uma forca???

dijava

hahaha descobri depois de uma semana :frowning: mas vai a para o pessoal futuro

o erro estava no meu jsp la no action estava assim form action="register.do">

esqueci de colocar a “/”

ai ficou assim

form action="/register.do"> e funcionou !

I

Não sei criar uma classe action.

WEB_INF / classe / br / com/ x / x / x / action e form

quando abro não consigo modificar o arquivo.class
mudo a extensão e quando abro aparece codigo maluco.

dijava

tu tem q procurar o fonte “arquivo.java” o arquivo.class ja é a classe compilada!!

Criado 11 de novembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 8
Participantes 3