Redireccionamientos

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.

← Diferencias con Struts1
Errores típicos →

Aviso Legal | Política de privacidad