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:
  • Field Summary

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

    Constructors
    Constructor
    Description
     
    HttpHeaderResult(int status)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addHeader(String name, String value)
    Adds an HTTP header to the response
    void
    Sets the optional HTTP response status code and also re-sets HTTP headers after they've been optionally evaluated against the ValueStack.
    Returns a Map of all HTTP headers.
    int
     
    void
    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.