Olá pessoal. Bom, estou tentando usar o Struts mas tá difícil de sair. :roll: O problema é o seguinte: tenho uma página para enviar uma requisição ao ActionServlet. Este por sua vez deveria encamilha-la para meu Action que iriria consulltar o banco e me listar os registros de uma tabela, chamando por fim a minha JSP de exibição. O problema é que quando envio a requisição tenho a seguinte mensagem:
HTTP Status 500 - No action instance for path /pages/listaUsuarios could be created
type Status report
message No action instance for path /pages/listaUsuarios could be created
description The server encountered an internal error (No action instance for path /pages/listaUsuarios could be created) that prevented it from fulfilling this request.
Apache Tomcat/5.0.28
Bom. Abaixo seguem os respectivos arquivos envolvidos na app.
executa.html
<html>
<body>
Listar usuários:
<form action="../pages/listaUsuarios.do" method="POST">
<input type="submit" value=" Listar ">
</form>
</body>
</html>
ActionListarUsuarios.java
package java.struts;
import java.sql.SQLException;
import java.struts.bean.AdminCadastroBD;
import java.util.LinkedList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class ActionListarUsuarios extends Action {
public ActionForward execute( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response ) throws Exception
{
LinkedList listaUsuarios = null;
HttpSession sessao = null;
ActionMessages erros = new ActionErrors();
try {
AdminCadastroBD admin = new AdminCadastroBD();
listaUsuarios = admin.listarUsuarios();
sessao = request.getSession();
sessao.setAttribute( "listaUsuarios", listaUsuarios );
}
catch ( SQLException ex ) {
erros.add( ActionErrors.GLOBAL_MESSAGE, new ActionMessage( "error.struts.list" ) );
getServlet().getServletContext().log( "Erro ao listar usuarios" );
}
if( !erros.isEmpty() )
{
saveErrors( request, erros );
return ( mapping.findForward( "failure" ) );
}
else
{
return ( mapping.findForward( "sucess" ) );
}
}
}
listaUsuarios.jsp
<%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body bgcolor="#f0f0f0">
<header><font color="blue">Lista de Usuarios</header>
<hr>
<table>
<tr bgcolor="#e0e0e0">
<td>Nome</td>
<td>Login</td>
<td>Senha</td>
<td>Sexo</td>
<td>Idade</td>
</tr>
<c:forEach var="usuario" items="${sessionScope.listaUsuarios}">
<tr>
<td>${usuario.nomeUsuario}</td>
<td>${usuario.loginUsuario}</td>
<td>${usuario.senhaUsuario}</td>
<td>${usaurio.sexoUsuario}</td>
<td>${usuario.idadeUsuario}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
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://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings>
<action
path="/pages/listaUsuarios"
type="java.struts.ActionListarUsuarios">
<forward name="sucess" path="/pages/listaUsuarios.jsp"/>
<forward name="failure" path="/pages/erroListar.jsp" />
</action>
</action-mappings>
</struts-config>
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>
<display-name>Struts Blank Application</display-name>
<!-- Standard Action Servlet Configuration (with debugging) -->
<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>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>
Com estas configurações deveria funcionar certo? Deveria… Parece algum problema no struts-config.xml, mas não consigo fazer funcionar.
Bom, espero que possam me ajudar! []s!
Pablo