Struts 2 - La etiqueta de frijol

La etiqueta de frijol es una combinación de set y pushetiquetas, le permite crear una nueva instancia de un objeto y luego establecer los valores de las variables. Luego, hace que el bean esté disponible en la pila de valores, para que pueda usarse en la página JSP.

La etiqueta Bean requiere un Java Bean para trabajar. Por lo tanto, se deben seguir las leyes estándar de Java Bean. Es decir, el bean no debería tener un constructor de argumentos. Todas las propiedades que desee exponer y utilizar deben tener los métodos getter y setter. Para el propósito de este ejercicio, usemos la siguiente clase Counter que viene en el paquete struts util. La clase Counter es un bean que se puede utilizar para realizar un seguimiento de un contador.

Mantengamos todos los archivos sin cambios y modifiquemos el archivo HelloWorld.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>
      <s:bean name = "org.apache.struts2.util.Counter" var = "counter">
         <s:param name = "first" value = "20"/>
         <s:param name = "last" value = "25" />
      </s:bean>
      
      <ul>
         <s:iterator value = "#counter">
            <li><s:property /></li>
         </s:iterator>
      </ul>
      
   </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/hello.action. Esto producirá la siguiente pantalla:

En este ejemplo, estamos creando una instancia nueva del bean org.apache.struts2.util.Counter. Luego, establecemos la primera propiedad en 20 y la última propiedad en 25.

Esto significa que el contador tendrá los valores 20,21,22,23,24 y 25. Le damos al bean un nombre "contador". La etiqueta de bean struts crea una instancia del bean y lo coloca en la pila de valores. Ahora podemos usar el iterador para pasar por el bean Contador e imprimir el valor del contador.