Package org.apache.struts2.convention.annotation

# Annotation Interface Action

@Target({METHOD,TYPE}) @Retention(RUNTIME) public @interface Action

This annotation can be used to control the URL that maps to a specific method in an Action class. By default, the method that is invoked is the execute method of the action and the URL is based on the package and class names. This annotation allows developers to change the URL or invoke a different method. This also allows developers to specify multiple URLs that will be handled by a single class or a single method.

This can also be used via the `Actions` annotation to associate multiple URLs with a single method.

Here's an example:

     public class MyAction implements Action {
       @Action("/foo/bar")
       public String execute() {}
     }

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `className`
  Allows actions to specify different class name.
  `ExceptionMapping[]`
  `exceptionMappings`
  `InterceptorRef[]`
  `interceptorRefs`
  Allows action methods to specify what interceptors must be applied to it.
  `String[]`
  `params`
  `Result[]`
  `results`
  Allows action methods to specifically control the results for specific return values.
  `String`
  `value`
  Allows actions to specify different URLs rather than the default that is based on the package and action name.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_VALUE`

- ## Field Details

  - ### DEFAULT_VALUE

    static final String DEFAULT_VALUE
    See Also:
      - Constant Field Values

- ## Element Details

  - ### value

    String value
    Allows actions to specify different URLs rather than the default that is based on the package and action name. This also allows methods other than execute() to be invoked or multiple URLs to map to a single class or a single method to handle multiple URLs.
    Returns:
      The action URL.
    Default:
      "DEFAULT_VALUE"

  - ### results

    Result[] results
    Allows action methods to specifically control the results for specific return values. These results are not used for other method/URL invocations on the action. These are only used for the URL that this action is associated with.
    Returns:
      The results for the action.
    Default:
      {}

  - ### interceptorRefs

    InterceptorRef[] interceptorRefs
    Allows action methods to specify what interceptors must be applied to it.
    Returns:
      Interceptors to be applied to the action
    Default:
      {}

  - ### params

    String[] params
    Returns:
      The parameters passed to the action. This is a list of strings that form a name/value pair chain since creating a Map for annotations is not possible. An example would be: `{"key", "value", "key2", "value2"}`.
    Default:
      {}

  - ### exceptionMappings

    ExceptionMapping[] exceptionMappings
    Returns:
      Maps return codes to exceptions. The "exceptions" interceptor must be applied to the action.
    Default:
      {}

  - ### className

    String className
    Allows actions to specify different class name.
    Returns:
      The class name for the action.
    Default:
      "DEFAULT_VALUE"