Struts 2 - La etiqueta de inclusión

los Struts include la etiqueta es muy similar a la jsp includeetiqueta y rara vez se utiliza. Hemos visto cómo incluir la salida de una acción de struts en un jsp usando las etiquetas <s: action>. La etiqueta <s: include> es ligeramente diferente. Le permite incluir la salida de un jsp, servlet o cualquier otro recurso (algo que no sea una acción de struts) en un jsp. Detrás de escena, es exactamente similar a <jsp: include>, pero le permite pasar parámetros al archivo incluido y también es parte del marco de Struts.

El siguiente ejemplo muestra cómo incluiremos la salida de HelloWorld.jsp en employee.jsp. En este caso, el método de acción en HelloWorldAction.java no se invocará, ya que estamos incluyendo directamente el jsp.

Crear clase de acción

package com.tutorialspoint.struts2;

public class HelloWorldAction {
   private String name;

   public String execute() throws Exception {
      return "success";
   }
   
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

Crear vistas

Déjanos tener HelloWorld.jsp con el siguiente contenido -

<%@ page contentType = "text/html; charset = UTF-8" %>
<%@ taglib prefix = "s" uri = "/struts-tags" %>

<html>
   <head>
      <title>Hello World</title>
   </head>
   
   <body>
      <h2>Example of Generator Tag</h2>
      <h3>The colours of rainbow:</h3>

      <s:generator val = "%{'Violet,Indigo,Blue,
         Green,Yellow,Orange,Red '}" count = "7" separator = ",">
         
         <s:iterator>
            <s:property /><br/>
         </s:iterator>
      </s:generator>	
         
   </body>
</html>

Siguiente déjanos tener employees.jsp con el siguiente contenido -

<%@ page contentType = "text/html; charset = UTF-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>

<html>
   <head>
      <title>Employees</title>
   </head>
   
   <body>
      <p>An example of the include tag: </p>
      <s:include value = "HelloWorld.jsp"/>
   </body>
</html>

Archivos de configuración

Tu struts.xml debería verse como -

<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
   <constant name = "struts.devMode" value = "true" />
   <package name = "helloworld" extends = "struts-default">

      <action name = "hello" 
         class = "com.tutorialspoint.struts2.HelloWorldAction" 
         method = "execute">
         <result name = "success">/HelloWorld.jsp</result>
      </action>
      
      <action name = "employee" 
         class = "com.tutorialspoint.struts2.Employee" 
         method = "execute">
         <result name = "success">/employee.jsp</result>
      </action>

   </package>
</struts>

Tu web.xml debería verse como -

<?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" 
   xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   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>Struts 2</display-name>
   
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   
   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
</web-app>

Haga clic derecho en el nombre del proyecto y haga clic en Export > WAR Filepara crear un archivo War. Luego, implemente este WAR en el directorio de aplicaciones web de Tomcat. Finalmente, inicie el servidor Tomcat e intente acceder a la URLhttp://localhost:8080/HelloWorldStruts2/employee.action. Esto producirá la siguiente pantalla: