Struts 2 - Il tag URL

Il urltag è responsabile della generazione di stringhe URL. Il vantaggio di ciò è che puoi fornire parametri al tag. Vediamo un esempio per mostrare l'utilizzo del tag URL.

Crea classi di azioni

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;
   }
}

Crea viste

Facciamo HelloWorld.jsp con il seguente contenuto -

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

<html>
   <head>
      <title>Hello World</title>
   </head>
   
   <body>
      <s:url id = "login" action = "login" var = "myurl">
         <s:param name = "user">Zara</s:param>
      </s:url>

      <a href = '<s:property value = "#myurl"/>'>
      <s:property value = "#myurl"/></a>
   </body>
</html>

Qui stiamo generando un collegamento URL a "login.action". Abbiamo dato a questo URL un nome "myurl". In questo modo possiamo riutilizzare questo collegamento URL in più punti all'interno del file jsp. Quindi forniamo l'URL con un parametro chiamato "USER". Il valore del parametro viene effettivamente aggiunto alla stringa della query come puoi vedere dall'output sopra.

Il tag URL è utile principalmente quando si desidera creare un collegamento ipertestuale dinamico basato sul valore della proprietà di un bean.

File di configurazione

Il tuo struts.xml dovrebbe apparire come -

<?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 = "helloaction" extends = "struts-default">
      <action name = "hello" 
         class = "com.tutorialspoint.struts2.HelloWorldAction" 
         method = "execute">
         <result name = "success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

Il tuo web.xml dovrebbe apparire come -

<?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>

Fare clic con il tasto destro sul nome del progetto e fare clic Export > WAR Fileper creare un file War. Quindi distribuire questo WAR nella directory webapps di Tomcat. Infine, avvia il server Tomcat e prova ad accedere all'URLhttp://localhost:8080/HelloWorldStruts2/hello.action. Questo produrrà la seguente schermata: