Foros del Web » Programación para mayores de 30 ;) » Java »

Iniciación en Struts

Estas en el tema de Iniciación en Struts en el foro de Java en Foros del Web. Hola a todos, Estoy empezando a trabajar con Struts1 sobre Eclipse para realizar pequeñas aplicaciones Web y me encuentro un poco perdido a la hora ...
  #1 (permalink)  
Antiguo 20/04/2016, 01:57
 
Fecha de Ingreso: abril-2016
Mensajes: 2
Antigüedad: 6 años
Puntos: 0
Pregunta Iniciación en Struts

Hola a todos,

Estoy empezando a trabajar con Struts1 sobre Eclipse para realizar pequeñas aplicaciones Web y me encuentro un poco perdido a la hora de como configurar el entorno de trabajo.
Mi primera prueba es muy simple, es una simple página principal con un enlace a otra, la principal peculiaridad es que el enlace lo hago a través de una acción .do, pero no funciona correctamente.
Os explico brevemente los pasos que he seguido y el error que he obtenido:

1- Creo en eclipse un nuevo "Dynamic Web Project". Le doy un nombre (Ej: Struts1) y pido que me generé el fichero web.xml.

2- Pico con el botón derecho sobre el proyecto voy a "Build Path" --> "Configure Build Path" --> "Libraries" --> "Add external JAR" --> Añado "struts-core-1.3.8.jar".

3- Edito el contenido del web.xml con el siguiente contenido:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts1</display-name>
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

4- Creo en /Struts1/WebContent/WEB-INF/ el fichero struts-config.xml con el siguiente contenido:

<?xml version="1.0"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<action-mappings>
<action path="/prueba" forward="/prueba.html" />
</action-mappings>
</struts-config>

5- Creo en el /Struts1/ la página index.jsp con el siguiente contenido (Unicamente una llamada a la acción prueba definida en el struts-config):

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<p><a href="prueba.do">click here for the next page</a></p>
</body>
</html>

6- Creo en la misma ubicación que el index.jsp la pagína prueba html que no tiene nada más que el texto "llegó" en el body.

7- Genero el .war desde dentro del directorio Struts1 con el comando "jar cvf struts1.war *".

8- Despliego en el servidor tomcat el .war. Cuando accedo la página "index.jsp" se muestra correctamente.

9- Cuando doy al enlace me aparece el siguiente error:

Estado HTTP 404 - /struts1/prueba.do

type Informe de estado

mensaje /struts1/prueba.do

descripción El recurso requerido (/struts1/prueba.do) no está disponible.
Apache Tomcat/7.0.26

Por lo que veo, no se estan cogiendo las peticiones ".do" y por eso no encuentra el recurso. ¿Qué es lo que estoy haciendo mal para que no funcione el enlace?

Gracias por adelantado.
  #2 (permalink)  
Antiguo 20/04/2016, 09:00
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Iniciación en Struts

Bajate el myeclipse, es de licencia pero la versión de prueba te servirá. Crea un dynamic web proyect, despues de que tengas el proyecto dale clic derecho y hay un menu myeclipse->add capabilities struts y en el cuadro de dialogo selecciona struts 1.2 sin tiles. Despues de hacer eso todo el proyecto quedara correctamente configurado.
Ahi puedes ver tus errores, struts usa como 5 jars y tu solo tienes uno. Tu web.xml se ve bien pero el struts-config.xml <action path="/prueba" forward="/prueba.html" /> el path debe mapearse desde una clase controller:
Cita:
public class StxxMultipleAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//aqui haces algo
return mapping.findForward("/prueba");
}
}
No veo esa clase
Y en tu <a href="prueba.do"> tal vez sea <a href="/prueba.do">

Se me olvidaba tambien te faltan los archivos donde se declaran los tags de struts para jsp (los tld): struts-bean, struts-html, struts-logic, struts-nested, struts-tiles.

Si creas bien el proyecto en myeclipse como te comento veras todo lo que te falta.

Última edición por abrahamhs; 20/04/2016 a las 09:05
  #3 (permalink)  
Antiguo 22/04/2016, 11:47
 
Fecha de Ingreso: abril-2016
Mensajes: 2
Antigüedad: 6 años
Puntos: 0
Respuesta: Iniciación en Struts

Hola abrahamhs

En primer lugar gracias por tu respuestas.

Sobre el uso de myeclipse, haciendo los pasos que me indicas se añadirán los 5 .jars que me comentas y los ficheros de los tags o debo añadirlos a mayores?
  #4 (permalink)  
Antiguo 25/04/2016, 12:02
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Iniciación en Struts

No, ya se añaden los jars y los ficheros automaticamente en myeclipse.
Si lo quieres hacer en tu eclipse normal ahi si tienes que agregarlos.
Te lo comento así porque myeclipse es de licencia y solo podrias trabajar ahi un mes.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:46.