Package org.apache.struts2.result

# Class HttpHeaderResult

java.lang.Object
org.apache.struts2.result.HttpHeaderResult

All Implemented Interfaces:
  `Serializable`, `Result`

public class HttpHeaderResult extends Object implements Result

A custom Result type for setting HTTP headers and status by optionally evaluating against the ValueStack. This result can also be used to send an error to the client. All the parameters can be evaluated against the ValueStack.

This result type takes the following parameters:

- status - the http servlet response status code that should be set on a response.
- parse - true by default. If set to false, the headers param will not be parsed for Ognl expressions.
- headers - header values.
- error - the http servlet response error code that should be set on a response.
- errorMessage - error message to be set on response if 'error' is set.

Example:

     <result name="success" type="httpheader">
       <param name="status">204</param>
       <param name="headers.a">a custom header value</param>
       <param name="headers.b">another custom header value</param>
     </result>

     <result name="proxyRequired" type="httpheader">
       <param name="error">305</param>
       <param name="errorMessage">this action must be accessed through a proxy</param>
     </result>

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_PARAM`
  This result type doesn't have a default param, null is ok to reduce noise in logs

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HttpHeaderResult()`
  `HttpHeaderResult(int status)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addHeader(String name, String value)`
  Adds an HTTP header to the response
  `void`
  `execute(ActionInvocation invocation)`
  Sets the optional HTTP response status code and also re-sets HTTP headers after they've been optionally evaluated against the ValueStack.
  `Map<String,String>`
  `getHeaders()`
  Returns a Map of all HTTP headers.
  `int`
  `getStatus()`
  `void`
  `setError(String error)`
  Sets the http servlet error code that should be set on the response
  `void`
  `setErrorMessage(String errorMessage)`
  Sets the error message that should be set on the reponse
  `void`
  `setParse(boolean parse)`
  Sets whether or not the HTTP header values should be evaluated against the ValueStack (by default they are).
  `void`
  `setStatus(int status)`
  Sets the http servlet response status code that should be set on a response.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_PARAM

    public static final String DEFAULT_PARAM
    This result type doesn't have a default param, null is ok to reduce noise in logs

- ## Constructor Details

  - ### HttpHeaderResult

    public HttpHeaderResult()

  - ### HttpHeaderResult

    public HttpHeaderResult(int status)

- ## Method Details

  - ### setError

    public void setError(String error)
    Sets the http servlet error code that should be set on the response
    Parameters:
      `error` - the Http error code
    See Also:
      - `HttpServletResponse.sendError(int)`

  - ### setErrorMessage

    public void setErrorMessage(String errorMessage)
    Sets the error message that should be set on the reponse
    Parameters:
      `errorMessage` - error message send to the client
    See Also:
      - `HttpServletResponse.sendError(int, String)`

  - ### getHeaders

    public Map<String,String> getHeaders()
    Returns a Map of all HTTP headers.
    Returns:
      a Map of all HTTP headers.

  - ### setParse

    public void setParse(boolean parse)
    Sets whether or not the HTTP header values should be evaluated against the ValueStack (by default they are).
    Parameters:
      `parse` - `true` if HTTP header values should be evaluated against the ValueStack, `false` otherwise.

  - ### setStatus

    public void setStatus(int status)
    Sets the http servlet response status code that should be set on a response.
    Parameters:
      `status` - the Http status code
    See Also:
      - `HttpServletResponse.setStatus(int)`

  - ### getStatus

    public int getStatus()

  - ### addHeader

    public void addHeader(String name, String value)
    Adds an HTTP header to the response
    Parameters:
      `name` - header name
      `value` - header value

  - ### execute

    public void execute(ActionInvocation invocation) throws Exception
    Sets the optional HTTP response status code and also re-sets HTTP headers after they've been optionally evaluated against the ValueStack.
    Specified by:
      `execute` in interface `Result`
    Parameters:
      `invocation` - an encapsulation of the action execution state.
    Throws:
      `Exception` - if an error occurs when re-setting the headers.