Struts 2 - Types d'annotations

Les applications Struts 2 peuvent utiliser les annotations Java 5 comme alternative à la configuration des propriétés XML et Java. Voici la liste des annotations les plus importantes liées aux différentes catégories -

Annotation d'espace de noms (annotation d'action)

L'annotation @Namespace permet la définition de l'espace de noms d'une Action dans le Action classe plutôt que basée sur les conventions de Zero Configuration.

@Namespace("/content")
public class Employee extends ActionSupport{
  ...
}

Annotation de résultat - (Annotation d'action)

L'annotation @Result permet la définition des résultats Action dans la classe Action plutôt que dans un fichier XML.

@Result(name = "success", value = "/success.jsp")
public class Employee extends ActionSupport{
 ...
}

Annotation des résultats - (Annotation d'action)

L'annotation @Results définit un ensemble de résultats pour une action.

@Results({
   @Result(name = "success", value = "/success.jsp"),
   @Result(name = "error", value = "/error.jsp")
})
public class Employee extends ActionSupport{
 ...
}

Après l'annotation - (Annotation d'intercepteur)

L'annotation @After marque une méthode d'action qui doit être appelée après la méthode d'action principale et le résultat a été exécuté. La valeur de retour est ignorée.

public class Employee extends ActionSupport{
   @After
   public void isValid() throws ValidationException {
      // validate model object, throw exception if failed
   }
   public String execute() {
      // perform secure action
      return SUCCESS;
   }
}

Avant l'annotation - (Annotation d'intercepteur)

L'annotation @Before marque une méthode d'action qui doit être appelée avant que la méthode d'action principale et le résultat ne soient exécutés. La valeur de retour est ignorée.

public class Employee extends ActionSupport{
   @Before
   public void isAuthorized() throws AuthenticationException {
      // authorize request, throw exception if failed
   }
   public String execute() {
      // perform secure action
      return SUCCESS;
   }
}

Annotation BeforeResult - (Annotation d'intercepteur)

L'annotation @BeforeResult marque une méthode d'action qui doit être exécutée avant le résultat. La valeur de retour est ignorée.

public class Employee extends ActionSupport{
   @BeforeResult
   public void isValid() throws ValidationException {
    // validate model object, throw exception if failed
   }

   public String execute() {
      // perform action
      return SUCCESS;
   }
}

Annotation ConversionErrorFieldValidator - (Annotation de validation)

Cette annotation de validation vérifie s'il existe des erreurs de conversion pour un champ et les applique si elles existent.

public class Employee extends ActionSupport{
   @ConversionErrorFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true)
   public String getName() {
      return name;
   }
}

Annotation DateRangeFieldValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ de date a une valeur dans une plage spécifiée.

public class Employee extends ActionSupport{
   @DateRangeFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true, 
      min = "2005/01/01", max = "2005/12/31")
   public String getDOB() {
      return dob;
   }
}

Annotation DoubleRangeFieldValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ double a une valeur dans une plage spécifiée. Si ni min ni max ne sont définis, rien ne sera fait.

public class Employee extends ActionSupport{

   @DoubleRangeFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true, 
      minInclusive = "0.123", maxInclusive = "99.987")
   public String getIncome() {
      return income;
   }
}

Annotation EmailValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ est une adresse de messagerie valide s'il contient une chaîne non vide.

public class Employee extends ActionSupport{

   @EmailValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true)
   public String getEmail() {
      return email;
   }
}

Annotation ExpressionValidator - (Annotation de validation)

Ce validateur de niveau non-champ valide une expression régulière fournie.

@ExpressionValidator(message = "Default message", key = "i18n.key", 
shortCircuit = true, expression = "an OGNL expression" )

Annotation IntRangeFieldValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ numérique a une valeur dans une plage spécifiée. Si ni min ni max ne sont définis, rien ne sera fait.

public class Employee extends ActionSupport{

   @IntRangeFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true, 
      min = "0", max = "42")
   public String getAge() {
      return age;
   }
}

Annotation RegexFieldValidator - (Annotation de validation)

Cette annotation valide un champ de chaîne à l'aide d'une expression régulière.

@RegexFieldValidator( key = "regex.field", expression = "yourregexp")

Annotation RequiredFieldValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ n'est pas nul. L'annotation doit être appliquée au niveau de la méthode.

public class Employee extends ActionSupport{

   @RequiredFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true)
   public String getAge() {
      return age;
   }
}

Annotation RequiredStringValidator - (Annotation de validation)

Cette annotation de validation vérifie qu'un champ String n'est pas vide (c'est-à-dire non nul avec une longueur> 0).

public class Employee extends ActionSupport{

   @RequiredStringValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true, trim = true)
   public String getName() {
      return name;
   }
}

Annotation StringLengthFieldValidator - (Annotation de validation)

Ce validateur vérifie qu'un champ String est de la bonne longueur. Il suppose que le champ est une chaîne. Si ni minLength ni maxLength ne sont définis, rien ne sera fait.

public class Employee extends ActionSupport{

   @StringLengthFieldValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true, 
      trim = true, minLength = "5",  maxLength = "12")
   public String getName() {
      return name;
   }
}

Annotation UrlValidator - (Annotation de validation)

Ce validateur vérifie qu'un champ est une URL valide.

public class Employee extends ActionSupport{

   @UrlValidator(message = "Default message", 
      key = "i18n.key", shortCircuit = true)
   public String getURL() {
      return url;
   }
}

Annotation de validations - (Annotation de validation)

Si vous souhaitez utiliser plusieurs annotations du même type, ces annotations doivent être imbriquées dans l'annotation @Validations ().

public class Employee extends ActionSupport{

  @Validations(
      requiredFields =
         {@RequiredFieldValidator(type = ValidatorType.SIMPLE, 
            fieldName = "customfield", 
            message = "You must enter a value for field.")},
      requiredStrings =
         {@RequiredStringValidator(type = ValidatorType.SIMPLE, 
         fieldName = "stringisrequired", 
         message = "You must enter a value for string.")}
   )
   public String getName() {
      return name;
   }
}

Annotation CustomValidator - (Annotation de validation)

Cette annotation peut être utilisée pour les validateurs personnalisés. Utilisez l'annotation ValidationParameter pour fournir des paramètres supplémentaires.

@CustomValidator(type ="customValidatorName", fieldName = "myField")

Annotation de conversion - (Annotation de conversion de type)

Il s'agit d'une annotation de marqueur pour les conversions de type au niveau du type. L'annotation de conversion doit être appliquée au niveau du type.

@Conversion()
   public class ConversionAction implements Action {
}

Annotation CreateIfNull - (Annotation de conversion de type)

Cette annotation définit le CreateIfNull pour la conversion de type. L'annotation CreateIfNull doit être appliquée au niveau du champ ou de la méthode.

@CreateIfNull( value = true )
private List<User> users;

Annotation d'élément - (Annotation de conversion de type)

Cette annotation définit l'élément pour la conversion de type. L'annotation Élément doit être appliquée au niveau du champ ou de la méthode.

@Element( value = com.acme.User )
private List<User> userList;

Annotation clé - (Annotation de conversion de type)

Cette annotation définit la clé pour la conversion de type. L'annotation Key doit être appliquée au niveau du champ ou de la méthode.

@Key( value = java.lang.Long.class )
private Map<Long, User> userMap;

Annotation KeyProperty - (Annotation de conversion de type)

Cette annotation définit la KeyProperty pour la conversion de type. L'annotation KeyProperty doit être appliquée au niveau du champ ou de la méthode.

@KeyProperty( value = "userName" )
protected List<User> users = null;

Annotation de conversion de type - (Annotation de conversion de type)

Cette annotation d'annotation est utilisée pour les règles de conversion à l'échelle de la classe et de l'application. L'annotation TypeConversion peut être appliquée au niveau de la propriété et de la méthode.

@TypeConversion(rule = ConversionRule.COLLECTION, 
converter = "java.util.String")
public void setUsers( List users ) {
   this.users = users;
}