Struts 2 - Tipi di annotazioni
Le applicazioni Struts 2 possono utilizzare le annotazioni Java 5 come alternativa alla configurazione delle proprietà XML e Java. Ecco l'elenco delle annotazioni più importanti relative a diverse categorie:
Annotazione spazio dei nomi (annotazione azione)
L'annotazione @Namespace consente la definizione dello spazio dei nomi di un'azione nel file Action class piuttosto che basato sulle convenzioni di Zero Configuration.
@Namespace("/content")
public class Employee extends ActionSupport{
...
}
Annotazione risultato - (Annotazione azione)
L'annotazione @Result consente la definizione dei risultati dell'azione nella classe Azione piuttosto che in un file XML.
@Result(name = "success", value = "/success.jsp")
public class Employee extends ActionSupport{
...
}
Annotazione risultati - (Annotazione azione)
L'annotazione @Results definisce un insieme di risultati per un'azione.
@Results({
@Result(name = "success", value = "/success.jsp"),
@Result(name = "error", value = "/error.jsp")
})
public class Employee extends ActionSupport{
...
}
Dopo l'annotazione - (Annotazione dell'intercettore)
L'annotazione @After contrassegna un metodo di azione che deve essere chiamato dopo che il metodo di azione principale e il risultato è stato eseguito. Il valore restituito viene ignorato.
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;
}
}
Prima dell'annotazione - (Annotazione dell'intercettore)
L'annotazione @Before contrassegna un metodo di azione che deve essere chiamato prima che il metodo di azione principale e il risultato siano stati eseguiti. Il valore restituito viene ignorato.
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;
}
}
Annotazione BeforeResult - (Annotazione Interceptor)
L'annotazione @BeforeResult contrassegna un metodo di azione che deve essere eseguito prima del risultato. Il valore restituito viene ignorato.
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;
}
}
ConversionErrorFieldValidator Annotation - (Annotazione di convalida)
Questa annotazione di convalida controlla se ci sono errori di conversione per un campo e li applica se esistono.
public class Employee extends ActionSupport{
@ConversionErrorFieldValidator(message = "Default message",
key = "i18n.key", shortCircuit = true)
public String getName() {
return name;
}
}
DateRangeFieldValidator Annotation - (Annotazione di convalida)
Questa annotazione di convalida controlla che un campo data abbia un valore all'interno di un intervallo specificato.
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;
}
}
Annotazione DoubleRangeFieldValidator - (Annotazione di convalida)
Questa annotazione di convalida controlla che un doppio campo abbia un valore all'interno di un intervallo specificato. Se non è impostato né min né max, non verrà eseguito nulla.
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;
}
}
Annotazione EmailValidator - (Annotazione di convalida)
Questa annotazione di convalida controlla che un campo sia un indirizzo e-mail valido se contiene una stringa non vuota.
public class Employee extends ActionSupport{
@EmailValidator(message = "Default message",
key = "i18n.key", shortCircuit = true)
public String getEmail() {
return email;
}
}
ExpressionValidator Annotation - (Annotazione di convalida)
Questo validatore di livello non di campo convalida un'espressione regolare fornita.
@ExpressionValidator(message = "Default message", key = "i18n.key",
shortCircuit = true, expression = "an OGNL expression" )
Annotazione IntRangeFieldValidator - (Annotazione di convalida)
Questa annotazione di convalida controlla che un campo numerico abbia un valore all'interno di un intervallo specificato. Se non è impostato né min né max, non verrà eseguito nulla.
public class Employee extends ActionSupport{
@IntRangeFieldValidator(message = "Default message",
key = "i18n.key", shortCircuit = true,
min = "0", max = "42")
public String getAge() {
return age;
}
}
RegexFieldValidator Annotation - (Annotazione di convalida)
Questa annotazione convalida un campo stringa utilizzando un'espressione regolare.
@RegexFieldValidator( key = "regex.field", expression = "yourregexp")
RequiredFieldValidator Annotation - (Annotazione di convalida)
Questa annotazione di convalida controlla che un campo non sia nullo. L'annotazione deve essere applicata a livello di metodo.
public class Employee extends ActionSupport{
@RequiredFieldValidator(message = "Default message",
key = "i18n.key", shortCircuit = true)
public String getAge() {
return age;
}
}
RequiredStringValidator Annotation - (Annotazione di convalida)
Questa annotazione di convalida controlla che un campo String non sia vuoto (cioè non nullo con una lunghezza> 0).
public class Employee extends ActionSupport{
@RequiredStringValidator(message = "Default message",
key = "i18n.key", shortCircuit = true, trim = true)
public String getName() {
return name;
}
}
StringLengthFieldValidator Annotation - (Annotazione di convalida)
Questo validatore controlla che un campo String sia della lunghezza giusta. Si presuppone che il campo sia una stringa. Se non è impostato né minLength né maxLength, non verrà eseguito nulla.
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;
}
}
UrlValidator Annotation - (Annotazione di convalida)
Questo validatore controlla che un campo sia un URL valido.
public class Employee extends ActionSupport{
@UrlValidator(message = "Default message",
key = "i18n.key", shortCircuit = true)
public String getURL() {
return url;
}
}
Annotazione di convalida - (Annotazione di convalida)
Se desideri utilizzare più annotazioni dello stesso tipo, queste annotazioni devono essere nidificate all'interno dell'annotazione @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;
}
}
Annotazione CustomValidator - (Annotazione di convalida)
Questa annotazione può essere utilizzata per i validatori personalizzati. Utilizza l'annotazione ValidationParameter per fornire parametri aggiuntivi.
@CustomValidator(type ="customValidatorName", fieldName = "myField")
Annotazione conversione - (Annotazione conversione tipo)
Questa è un'annotazione indicatore per le conversioni di tipo a livello di tipo. L'annotazione di conversione deve essere applicata a livello di tipo.
@Conversion()
public class ConversionAction implements Action {
}
Annotazione CreateIfNull - (Annotazione conversione tipo)
Questa annotazione imposta CreateIfNull per la conversione del tipo. L'annotazione CreateIfNull deve essere applicata a livello di campo o di metodo.
@CreateIfNull( value = true )
private List<User> users;
Annotazione elemento - (Annotazione conversione tipo)
Questa annotazione imposta l'elemento per la conversione del tipo. L'annotazione dell'elemento deve essere applicata a livello di campo o di metodo.
@Element( value = com.acme.User )
private List<User> userList;
Annotazione chiave - (Annotazione conversione tipo)
Questa annotazione imposta la chiave per la conversione del tipo. L'annotazione chiave deve essere applicata a livello di campo o di metodo.
@Key( value = java.lang.Long.class )
private Map<Long, User> userMap;
Annotazione proprietà chiave - (Annotazione conversione tipo)
Questa annotazione imposta KeyProperty per la conversione del tipo. L'annotazione KeyProperty deve essere applicata a livello di campo o metodo.
@KeyProperty( value = "userName" )
protected List<User> users = null;
TypeConversion Annotation - (Type Conversion Annotation)
Questa annotazione di annotazione viene utilizzata per le regole di conversione a livello di applicazione e di classe. L'annotazione TypeConversion può essere applicata a livello di proprietà e metodo.
@TypeConversion(rule = ConversionRule.COLLECTION,
converter = "java.util.String")
public void setUsers( List users ) {
this.users = users;
}