Mapeamento com Struts

9 respostas
D

Boa Tarde Galera do GUJ!!!

Estou fazendo um estudo sobre Struts e estou com dificuldades . Se alguem puder me ajuar…

Criei um formulario de Login , mas o mesmo não chama as paginas conforme definido no struts-config.xml.

abaixo segue os codigos

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">
	<display-name>Aplicacao web simples</display-name>
	
	<servlet>
		<servlet-name>testeDeStruts</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>
		<load-on-startup>1</load-on-startup>
	</servlet>	
	
	<servlet-mapping>
		<servlet-name>testeDeStruts</servlet-name>
		<url-pattern>/*.do</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>bemvindo.jsp</welcome-file>
	</welcome-file-list>
	
	<taglib>
      <taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
      <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>        
  	</taglib>
  
  	<taglib>
      <taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
      <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>        
  	</taglib>
  
  	<taglib>
      <taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
      <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>        
  	</taglib> 
  
</web-app>

Struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>

  <form-beans>
	<form-bean name="LoginForm" type="br.com.jspteste.form.LoginForm"/>
	</form-beans>
	
	<action-mappings>
		<action path="/login" 
			    name="LoginForm" 
			    type="br.com.jspteste.struts.action.LoginAction">								<forward name="erro" path="/erro.jsp"/>
	<forward name="ok" path="/ok.jsp"/>
		</action>
	</action-mappings>
	
	<!-- Arquivo de Mensagens -->
	<message-resources parameter="MessageResources" />
</struts-config>

Desde já Agradeço a Atenção

9 Respostas

acramos

Struts 2??? naum né…

D

Não , estou usando a versao 1.3.8

marcelo_mococa

qual o erro?? Como você está chamando a action???

aparentemente o mapeamento está certo.

D

JOMI , sim a aplicação subiu sem erro e a class LoginAction esta herdando a Action. e o formulario esta mapeando tbm.

marcelo_mococa , num da erro nenhum … so num chama as paginas erro.jsp e nem ok.jsp

LoginAction

public class LoginAction extends Action {	
	public ActionForward execute(ActionMapping map,ActionForm form, HttpServletRequest req,
HttpServletResponse resp){
	System.out.println("Algum Usuário está Tentando Logar....");
		LoginForm formulario = (LoginForm) form;
		String usuario = formulario.getUsuario();
		String senha = formulario.getSenha();				
		if(usuario.equals("") || !usuario.equals(senha)){
			return map.findForward("erro");
		}
		return map.findForward("ok");
	}
}

formulario.jsp

<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
<html:html>
    <head><title>Sistema de Teste com Struts...</title></head>
     <body>
        <html:form action="/login" focus="usuario">
	Usuario :
         <html:text property="usuario" size="16" /> <br>
	Senha   :
         <html:text property="senha" size="16" /> <br>		
         <html:submit>Enviar Dados</html:submit>		
          <html:reset>Limpar Campos</html:reset>
        </html:form>
      </body>
</html:html>
D

JOMI ,

Obrigado por ter sugerido soluções , fiz as alterações confome disse ,mas ainda continua não chamando a pagina.

Observando o endereço (no browser) qndo clico no botao ele fica assim http://…/Jspteste/login;jsessionid=B2DE008… e a pagina fica em branco…

att Daniel

D

Funcionou só que em vez da classe LoginAction extender da Action , coloquei ela extender da DispatchAction.

Alguem saberia me dizer o porque disso?? sendo que a DispatchAction extende da Action…

att Daniel

A

Estranho isso…

J

Vc viu se sua aplicacao subiu no servidor sem erro???

Caso sim, veja:
Seu loginAction está herdando Action?
Seu formulario de login está mapeando a acão para login.do?

J

daniel.miranda

O problema está no formulario…coloque login.do ja que no seu web.xml vc colocou /*.do
<html:form action="/login.do" focus=“usuario”>

Ou vc pode deixar o formulario como esta e mudar o seu web.xml colocando somente /*

testeDeStruts
/*

Criado 24 de abril de 2007
Ultima resposta 25 de abr. de 2007
Respostas 9
Participantes 5