Struts 2 - Las etiquetas If y Else

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 index.jsp archivo de la siguiente manera:

<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
  pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
   <head>
      lt;title>Hello World</title>
   </head>
   
   <body>
      <h1>Hello World From Struts2</h1>
      <form action = "hello">
         <label for = "name">Please pick a name</label><br/>
         <select name = "name">
            <option name = "Mike">Mike</option>
            <option name = "Jason">Jason</option>
            <option name = "Mark">Mark</option>
         </select>
         <input type = "submit" value = "Say Hello"/>
      </form>
   </body>
</html>

Siguiente déjanos tener HelloWorld.jsp para demostrar el uso del if, else y elseif etiquetas -

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

<html>
   <head>
      <title>Example of If and Else</title>
   </head>
   
   <body>
      <b>Example of If and Else</b><br/>
      
      <s:if test = "name=='Mike'">
         You have selected 'Mike'. 
      </s:if>
      
      <s:elseif test = "name=='Jason'">
         You have selected 'Jason'
      </s:elseif>
      
      <s:else>
         You have not selected 'Mike' or 'Jason'.
      </s:else>
   </body>
</html>

Aquí, la etiqueta "si" devuelve verdadero si la condición especificada en el atributo "prueba" devuelve verdadero. En nuestro caso, lo estamos comparando con "Mike". Si el nombre es Mike, la etiqueta devuelve verdadero e imprimimos la cadena; de lo contrario, se ejecuta el bloque "elseif" y, si no se cumple, se ejecuta el bloque else. Esto no es diferente del convencional if, else if y else disponible en el lenguaje Java.

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>

   </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/index.jsp. Esto producirá la siguiente pantalla:

Ahora seleccione "Marcar" y envíe la página. Debería ver la página siguiente.