Streben 2 - Anmerkungen

Wie bereits erwähnt, bietet Struts zwei Konfigurationsformen. Der traditionelle Weg ist die Verwendung derstruts.xmlDatei für alle Konfigurationen. Wir haben bisher so viele Beispiele dafür im Tutorial gesehen. Die andere Möglichkeit zum Konfigurieren von Struts ist die Verwendung der Java 5 Annotations-Funktion. Mit den Strebenanmerkungen können wir erreichenZero Configuration.

Um Anmerkungen in Ihrem Projekt zu verwenden, stellen Sie sicher, dass Sie die folgenden JAR-Dateien in Ihr Projekt aufgenommen haben WebContent/WEB-INF/lib Ordner -

  • struts2-convention-plugin-x.y.z.jar
  • asm-x.y.jar
  • antlr-x.y.z.jar
  • commons-fileupload-x.y.z.jar
  • commons-io-x.y.z.jar
  • commons-lang-x.y.jar
  • commons-logging-x.y.z.jar
  • commons-logging-api-x.y.jar
  • freemarker-x.y.z.jar
  • javassist-.xy.z.GA
  • ognl-x.y.z.jar
  • struts2-core-x.y.z.jar
  • xwork-core.x.y.z.jar

Lassen Sie uns nun sehen, wie Sie die in der struts.xml Datei und ersetzen Sie es durch Anmerkungen.

Um das Konzept der Annotation in Struts2 zu erläutern, müssten wir unser im Kapitel Struts2-Validierungen erläutertes Validierungsbeispiel überdenken .

Hier nehmen wir ein Beispiel eines Mitarbeiters, dessen Name und Alter auf einer einfachen Seite erfasst werden, und wir werden zwei Validierungen vornehmen, um sicherzustellen, dass ÜSER immer einen Namen eingibt und das Alter zwischen 28 und 65 liegen sollte.

Beginnen wir mit der JSP-Hauptseite des Beispiels.

Hauptseite erstellen

Lassen Sie uns die Hauptseite der JSP-Datei schreiben index.jsp, mit dem oben erwähnte mitarbeiterbezogene Informationen gesammelt werden.

<%@ 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>
      <title>Employee Form</title>
   </head>

   <body>
      
      <s:form action = "empinfo" method = "post">
         <s:textfield name = "name" label = "Name" size = "20" />
         <s:textfield name = "age" label = "Age" size = "20" />
         <s:submit name = "submit" label = "Submit" align="center" />
      </s:form>

   </body>
</html>

Die index.jsp verwendet das Struts-Tag, das wir noch nicht behandelt haben, aber wir werden sie in Tags-bezogenen Kapiteln untersuchen. Nehmen wir zunächst an, dass das Tag s: textfield ein Eingabefeld und das Tag s: submit eine Schaltfläche zum Senden druckt. Wir haben die Label-Eigenschaft für jedes Tag verwendet, wodurch ein Label für jedes Tag erstellt wird.

Ansichten erstellen

Wir werden JSP-Datei verwenden success.jsp Dies wird aufgerufen, wenn die definierte Aktion zurückkehrt SUCCESS.

<%@ 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>
      <title>Success</title>
   </head>
   
   <body>
      Employee Information is captured successfully.
   </body>
</html>

Aktion erstellen

Dies ist der Ort, an dem Anmerkungen verwendet werden. Lassen Sie uns die Aktionsklasse neu definierenEmployee mit Annotation, und fügen Sie dann eine Methode namens validate () wie unten in gezeigt Employee.javaDatei. Stellen Sie sicher, dass Ihre Aktionsklasse die erweitertActionSupport Klasse, andernfalls wird Ihre Validierungsmethode nicht ausgeführt.

package com.tutorialspoint.struts2;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.validator.annotations.*;

@Results({
   @Result(name = "success", Location = "/success.jsp"),
   @Result(name = "input", Location = "/index.jsp")
})
public class Employee extends ActionSupport {
   private String name;
   private int age;

   @Action(value = "/empinfo")
   
   public String execute() {
      return SUCCESS;
   }

   @RequiredFieldValidator( message = "The name is required" )
   
   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }

   @IntRangeFieldValidator(message = "Age must be in between 28 and 65", min = "29", max = "65")
   
   public int getAge() {
      return age;
   }
   
   public void setAge(int age) {
      this.age = age;
   }
}

In diesem Beispiel haben wir nur wenige Anmerkungen verwendet. Lassen Sie mich sie einzeln durchgehen -

  • Zunächst haben wir die aufgenommen ResultsAnmerkung. Eine Ergebnisanmerkung ist eine Sammlung von Ergebnissen.

  • Unter der Ergebnisanmerkung befinden sich zwei Ergebnisanmerkungen. Die Ergebnisanmerkungen haben dienamedas entspricht dem Ergebnis der Ausführungsmethode. Sie enthalten auch einen Speicherort, an dem die Ansicht entsprechend dem Rückgabewert von execute () bereitgestellt werden soll.

  • Die nächste Anmerkung ist die ActionAnmerkung. Dies wird verwendet, um die execute () -Methode zu dekorieren. Die Action-Methode nimmt auch einen Wert an, der die URL ist, unter der die Aktion aufgerufen wird.

  • Schließlich habe ich zwei verwendet validationAnmerkungen. Ich habe den erforderlichen Feldvalidator aktiviertname Feld und der Integer Range Validator auf dem ageFeld. Ich habe auch eine benutzerdefinierte Nachricht für die Validierungen angegeben.

Konfigurationsdateien

Wir brauchen das wirklich nicht struts.xml Konfigurationsdatei, also lassen Sie uns diese Datei entfernen und den Inhalt von überprüfen web.xml Datei -

<?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>
      
      <init-param>
         <param-name>struts.devMode</param-name>
         <param-value>true</param-value>
      </init-param>
   </filter>

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

Klicken Sie nun mit der rechten Maustaste auf den Projektnamen und klicken Sie auf Export > WAR Fileum eine War-Datei zu erstellen. Stellen Sie diese WAR dann im Webanwendungsverzeichnis von Tomcat bereit. Starten Sie abschließend den Tomcat-Server und versuchen Sie, auf die URL zuzugreifenhttp://localhost:8080/HelloWorldStruts2/index.jsp. Daraufhin wird der folgende Bildschirm angezeigt:

Geben Sie jetzt keine erforderlichen Informationen ein, klicken Sie einfach auf SubmitTaste. Sie sehen folgendes Ergebnis:

Geben Sie die erforderlichen Informationen ein, aber geben Sie ein falsches From-Feld ein. Sagen Sie den Namen als "Test" und das Alter als 30 und klicken Sie schließlich auf SubmitTaste. Sie sehen folgendes Ergebnis:

Streben 2 Anmerkungstypen

Struts 2-Anwendungen können Java 5-Annotationen als Alternative zur Konfiguration von XML- und Java-Eigenschaften verwenden. Sie können die Liste der wichtigsten Anmerkungen zu verschiedenen Kategorien überprüfen.

Streben 2 Anmerkungstypen .