Curso de Struts 2 | Redireccionamientos

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Redireccionamiento directo

index.jsp<a href="enlace.action">Enlace</a>
WebContent/WEB-INF/web.xml<?xml version="1.0" encoding="utf-8" ?>
<web-app
 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 version="3.1">

 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
  </filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
</web-app>
src/struts.xml<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
 <package name="com.pablomonteserin.action" extends="struts-default">
  <action name="enlace">
   <result>/pagina2.jsp</result>
  </action>
 </package>
</struts>
página2.jspLlegamos a ĺa página 2

Descarga (utilizaremos este ejercicio como base para los siguientes)

Redireccionamiento al método execute del action

index.jsp<a href="accion.action">Enlace a acción</a>
struts.xml<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <package name="com.pablomonteserin.action" extends="struts-default">
  <action name="accion" class="com.pablomonteserin.action.SaludarAction">
   <result>/pagina2.jsp</result>
  </action>
 </package>
</struts>
SaludarAction.java
public class SaludarAction extends ActionSupport {
 private String resultado;

 public String execute(){
  resultado = "Hola Pablo";
  return SUCCESS;
 }
 //getters y setters el atributo resultado
}
pagina2.jsp<%@ taglib prefix="s" uri="/struts-tags"%>
<h2><s:property value="resultado" /></h2>

Redireccionamiento a un método concreto del action

index.jsp

<a href="accion2.action">Enlace a acción</a>

struts.xml

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <package name="com.pablomonteserin.action" extends="struts-default">
  <action name="accion2" class="com.pablomonteserin.action.SaludarAction" method="saludar">
   <result>/pagina2.jsp</result>
  </action>
 </package>
</struts>

SaludarAction.java

public class SaludarAction extends ActionSupport {
 private String resultado;

 public String saludar(){
  resultado = "Hola Juan";
  return SUCCESS;
 }
 //getters y setters para el atributo resultado
}

pagina2.jsp

<%@ taglib prefix="s" uri="/struts-tags"%>
<h2><s:property value="resultado" /></h2>

Redireccionamiento a un método con paso de parámetros

Debemos definir estos parámetros como atributos globales dentro del action y hacer sus correspondientes getters y setters

La salida de un action es la entrada de otro

struts.xml

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <package name="com.pablomonteserin.action" extends="struts-default">
  <action name="accionRedireccion" class="com.pablomonteserin.action.SaludarAction" method="saludar">
   <result type="redirectAction">accion3</result>
  </action>
 </package>
</struts>

Notas:
Si usamos type=»chain», redireccionaremos a otro bean, pero cuando finalmente vayamos a un jsp, le llegará la información del penúltimo action ejecutado.

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.