Class ActionSupport

java.lang.Object
org.apache.struts2.ActionSupport
All Implemented Interfaces:
Serializable, Action, ValidationAware, LocaleProvider, TextProvider, Validateable
Direct Known Subclasses:
CspReportAction, DefaultActionSupport

public class ActionSupport extends Object implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable
Provides a default implementation for the most common actions. See the documentation for all the interfaces this class implements for more detailed information.
See Also:
  • Field Details

  • Constructor Details

    • ActionSupport

      public ActionSupport()
  • Method Details

    • setActionErrors

      public void setActionErrors(Collection<String> errorMessages)
      Description copied from interface: ValidationAware
      Set the Collection of Action-level String error messages.
      Specified by:
      setActionErrors in interface ValidationAware
      Parameters:
      errorMessages - Collection of String error messages
    • getActionErrors

      public Collection<String> getActionErrors()
      Description copied from interface: ValidationAware
      Get the Collection of Action-level error messages for this action. Error messages should not be added directly here, as implementations are free to return a new Collection or an Unmodifiable Collection.
      Specified by:
      getActionErrors in interface ValidationAware
      Returns:
      Collection of String error messages
    • setActionMessages

      public void setActionMessages(Collection<String> messages)
      Description copied from interface: ValidationAware
      Set the Collection of Action-level String messages (not errors).
      Specified by:
      setActionMessages in interface ValidationAware
      Parameters:
      messages - Collection of String messages (not errors).
    • getActionMessages

      public Collection<String> getActionMessages()
      Description copied from interface: ValidationAware
      Get the Collection of Action-level messages for this action. Messages should not be added directly here, as implementations are free to return a new Collection or an Unmodifiable Collection.
      Specified by:
      getActionMessages in interface ValidationAware
      Returns:
      Collection of String messages
    • setFieldErrors

      public void setFieldErrors(Map<String,List<String>> errorMap)
      Description copied from interface: ValidationAware
      Set the field error map of fieldname (String) to Collection of String error messages.
      Specified by:
      setFieldErrors in interface ValidationAware
      Parameters:
      errorMap - field error map
    • getFieldErrors

      public Map<String,List<String>> getFieldErrors()
      Description copied from interface: ValidationAware
      Get the field specific errors associated with this action. Error messages should not be added directly here, as implementations are free to return a new Collection or an Unmodifiable Collection.
      Specified by:
      getFieldErrors in interface ValidationAware
      Returns:
      Map with errors mapped from fieldname (String) to Collection of String error messages
    • getLocale

      public Locale getLocale()
      Description copied from interface: LocaleProvider
      Gets the provided locale.
      Specified by:
      getLocale in interface LocaleProvider
      Returns:
      the locale.
    • isValidLocaleString

      public boolean isValidLocaleString(String localeStr)
      Description copied from interface: LocaleProvider
      Validates if provided string is a valid Locale
      Specified by:
      isValidLocaleString in interface LocaleProvider
      Parameters:
      localeStr - a String representing locale, e.g. en_EN
      Returns:
      true if valid
    • isValidLocale

      public boolean isValidLocale(Locale locale)
      Description copied from interface: LocaleProvider
      Validates if provided Locale is value
      Specified by:
      isValidLocale in interface LocaleProvider
      Parameters:
      locale - instance of Locale to validate
      Returns:
      true if valid
    • toLocale

      public Locale toLocale(String localeStr)
      Description copied from interface: LocaleProvider
      Tries to convert provided locale string into Locale or returns null
      Specified by:
      toLocale in interface LocaleProvider
      Parameters:
      localeStr - a String representing locale, e.g.: en_EN
      Returns:
      instance of Locale or null
    • hasKey

      public boolean hasKey(String key)
      Description copied from interface: TextProvider
      Checks if a message key exists.
      Specified by:
      hasKey in interface TextProvider
      Parameters:
      key - message key to check for
      Returns:
      boolean true if key exists, false otherwise.
    • getText

      public String getText(String aTextName)
      Description copied from interface: TextProvider
      Gets a message based on a message key or if no message is found the provided key is returned.
      Specified by:
      getText in interface TextProvider
      Parameters:
      aTextName - the resource bundle key that is to be searched for
      Returns:
      the message as found in the resource bundle, or the provided key if none is found.
    • getText

      public String getText(String aTextName, String defaultValue)
      Description copied from interface: TextProvider
      Gets a message based on a key, or, if the message is not found, a supplied default value is returned.
      Specified by:
      getText in interface TextProvider
      Parameters:
      aTextName - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getText

      public String getText(String aTextName, String defaultValue, String obj)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied obj, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned.
      Specified by:
      getText in interface TextProvider
      Parameters:
      aTextName - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      obj - obj to be used in a MessageFormat message
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getText

      public String getText(String aTextName, List<?> args)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat or the provided key if no message is found.
      Specified by:
      getText in interface TextProvider
      Parameters:
      aTextName - the resource bundle key that is to be searched for
      args - a list args to be used in a MessageFormat message
      Returns:
      the message as found in the resource bundle, or the provided key if none is found.
    • getText

      public String getText(String key, String[] args)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat, or the provided key if no message is found.
      Specified by:
      getText in interface TextProvider
      Parameters:
      key - the resource bundle key that is to be searched for
      args - an array args to be used in a MessageFormat message
      Returns:
      the message as found in the resource bundle, or the provided key if none is found.
    • getText

      public String getText(String aTextName, String defaultValue, List<?> args)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned.
      Specified by:
      getText in interface TextProvider
      Parameters:
      aTextName - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      args - a list args to be used in a MessageFormat message
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getText

      public String getText(String key, String defaultValue, String[] args)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned.
      Specified by:
      getText in interface TextProvider
      Parameters:
      key - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      args - an array args to be used in a MessageFormat message
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getText

      public String getText(String key, String defaultValue, List<?> args, ValueStack stack)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned. Instead of using the value stack in the ActionContext this version of the getText() method uses the provided value stack.
      Specified by:
      getText in interface TextProvider
      Parameters:
      key - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      args - a list args to be used in a MessageFormat message
      stack - the value stack to use for finding the text
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getText

      public String getText(String key, String defaultValue, String[] args, ValueStack stack)
      Description copied from interface: TextProvider
      Gets a message based on a key using the supplied args, as defined in MessageFormat, or, if the message is not found, a supplied default value is returned. Instead of using the value stack in the ActionContext this version of the getText() method uses the provided value stack.
      Specified by:
      getText in interface TextProvider
      Parameters:
      key - the resource bundle key that is to be searched for
      defaultValue - the default value which will be returned if no message is found
      args - an array args to be used in a MessageFormat message
      stack - the value stack to use for finding the text
      Returns:
      the message as found in the resource bundle, or defaultValue if none is found
    • getFormatted

      public String getFormatted(String key, String expr)
      Dedicated method to support I10N and conversion errors
      Parameters:
      key - message which contains formatting string
      expr - that should be formatted
      Returns:
      formatted expr with format specified by key
    • getTexts

      public ResourceBundle getTexts()
      Description copied from interface: TextProvider
      Get the resource bundle associated with the implementing class (usually an action).
      Specified by:
      getTexts in interface TextProvider
      Returns:
      the bundle
    • getTexts

      public ResourceBundle getTexts(String aBundleName)
      Description copied from interface: TextProvider
      Get the named bundle, such as "com/acme/Foo".
      Specified by:
      getTexts in interface TextProvider
      Parameters:
      aBundleName - the name of the resource bundle, such as "com/acme/Foo".
      Returns:
      the bundle
    • addActionError

      public void addActionError(String anErrorMessage)
      Description copied from interface: ValidationAware
      Add an Action-level error message to this Action.
      Specified by:
      addActionError in interface ValidationAware
      Parameters:
      anErrorMessage - the error message
    • addActionMessage

      public void addActionMessage(String aMessage)
      Description copied from interface: ValidationAware
      Add an Action-level message to this Action.
      Specified by:
      addActionMessage in interface ValidationAware
      Parameters:
      aMessage - the message
    • addFieldError

      public void addFieldError(String fieldName, String errorMessage)
      Description copied from interface: ValidationAware
      Add an error message for a given field.
      Specified by:
      addFieldError in interface ValidationAware
      Parameters:
      fieldName - name of field
      errorMessage - the error message
    • input

      public String input() throws Exception
      Throws:
      Exception
    • execute

      public String execute() throws Exception
      A default implementation that does nothing an returns "success".

      Subclasses should override this method to provide their business logic.

      See also Action.execute().

      Specified by:
      execute in interface Action
      Returns:
      returns Action.SUCCESS
      Throws:
      Exception - can be thrown by subclasses.
    • hasActionErrors

      public boolean hasActionErrors()
      Description copied from interface: ValidationAware
      Check whether there are any Action-level error messages.
      Specified by:
      hasActionErrors in interface ValidationAware
      Returns:
      true if any Action-level error messages have been registered
    • hasActionMessages

      public boolean hasActionMessages()
      Description copied from interface: ValidationAware
      Checks whether there are any Action-level messages.
      Specified by:
      hasActionMessages in interface ValidationAware
      Returns:
      true if any Action-level messages have been registered
    • hasErrors

      public boolean hasErrors()
      Description copied from interface: ValidationAware
      Checks whether there are any action errors or field errors.
      Specified by:
      hasErrors in interface ValidationAware
      Returns:
      (hasActionErrors() || hasFieldErrors())
    • hasFieldErrors

      public boolean hasFieldErrors()
      Description copied from interface: ValidationAware
      Check whether there are any field errors associated with this action.
      Specified by:
      hasFieldErrors in interface ValidationAware
      Returns:
      whether there are any field errors
    • clearFieldErrors

      public void clearFieldErrors()
      Clears field errors. Useful for Continuations and other situations where you might want to clear parts of the state on the same action.
    • clearActionErrors

      public void clearActionErrors()
      Clears action errors. Useful for Continuations and other situations where you might want to clear parts of the state on the same action.
    • clearMessages

      public void clearMessages()
      Clears messages. Useful for Continuations and other situations where you might want to clear parts of the state on the same action.
    • clearErrors

      public void clearErrors()
      Clears all errors. Useful for Continuations and other situations where you might want to clear parts of the state on the same action.
    • clearErrorsAndMessages

      public void clearErrorsAndMessages()
      Clears all errors and messages. Useful for Continuations and other situations where you might want to clear parts of the state on the same action.
    • validate

      public void validate()
      A default implementation that validates nothing. Subclasses should override this method to provide validations.
      Specified by:
      validate in interface Validateable
    • clone

      public Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • pause

      public void pause(String result)
      Stops the action invocation immediately (by throwing a PauseException) and causes the action invocation to return the specified result, such as Action.SUCCESS, Action.INPUT, etc.

      The next time this action is invoked (and using the same continuation ID), the method will resume immediately after where this method was called, with the entire call stack in the execute method restored.

      Note: this method can only be called within the execute() method.

      Parameters:
      result - the result to return - the same type of return value in the execute() method.
    • getTextProvider

      protected TextProvider getTextProvider()
      If called first time it will create TextProviderFactory, inject dependency (if Container is accesible) into in, then will create new TextProvider and store it in a field for future references and at the returns reference to that field
      Returns:
      reference to field with TextProvider
    • getLocaleProvider

      protected LocaleProvider getLocaleProvider()
    • getContainer

      protected Container getContainer()
      TODO: This a temporary solution, maybe we should consider stop injecting container into beans
    • setContainer

      public void setContainer(Container container)