isEligibleProperty(String, Object) method.
A URL for this view is supposed to be an HTTP redirect URL, i.e.
suitable for HttpServletResponse's sendRedirect method, which
is what actually does the redirect if the HTTP 1.0 flag is on, or via sending
back an HTTP 303 code - if the HTTP 1.0 compatibility flag is off.
Note that while the default value for the "contextRelative" flag is off, you will probably want to almost always set it to true. With the flag off, URLs starting with "/" are considered relative to the web server root, while with the flag on, they are considered relative to the web application root. Since most web applications will never know or care what their context path actually is, they are much better off setting this flag to true, and submitting paths which are to be considered relative to the web application root.
NOTE when using this redirect view in a Portlet environment: Make sure
that your controller respects the Portlet sendRedirect constraints.
setContextRelative, setHttp10Compatible, setExposeModelAttributes, jakarta.servlet.http.HttpServletResponse#sendRedirect
| Modifier and Type | Field and Description |
|---|---|
| private boolean | |
| private String | |
| private boolean | |
| private boolean | |
| private String[] | |
| private boolean | |
| private boolean | |
| private HttpStatusCode | |
| private static final Pattern |
| Access | Constructor and Description |
|---|---|
| public | |
| public | |
| public | RedirectView(String
the URL to redirect to url, boolean whether to interpret the given URL as
relative to the current ServletContext contextRelative)Create a new RedirectView with the given URL. |
| public | RedirectView(String
the URL to redirect to url, boolean whether to interpret the given URL as
relative to the current ServletContext contextRelative, boolean whether to stay compatible with HTTP 1.0 clients http10Compatible)Create a new RedirectView with the given URL. |
| public | RedirectView(String
the URL to redirect to url, boolean whether to interpret the given URL as
relative to the current ServletContext contextRelative, boolean whether to stay compatible with HTTP 1.0 clients http10Compatible, boolean whether model attributes should be
exposed as query parameters exposeModelAttributes)Create a new RedirectView with the given URL. |
| Modifier and Type | Method and Description |
|---|---|
| protected void | appendCurrentQueryParams(StringBuilder
the StringBuilder to append the properties to targetUrl, HttpServletRequest the current request request)Append the query string of the current request to the target redirect URL. |
| protected void | appendQueryProperties(StringBuilder
the StringBuilder to append the properties to targetUrl, Map<String, Object> a Map that contains model attributes model, String the encoding scheme to use encodingScheme)Append query properties to the redirect URL. |
| protected final String | createTargetUrl(Map<String, Object> model, HttpServletRequest request)
Create the target URL by checking if the redirect string is a URI template first, expanding it with the given model, and then optionally appending simple type model attributes as query String parameters. |
| private String | |
| private Map | |
| public String[] | |
| protected HttpStatusCode | Returns: the response statusthe request to inspect request, HttpServletResponse the servlet response response, String the target URL targetUrl)Determines the status code to use for HTTP 1.1 compatible requests. |
| protected boolean | isContextRequired()
Overrides org. An ApplicationContext is not strictly required for RedirectView. |
| protected boolean | Returns: whether the element is eligible as query propertythe key of the model element key, Object the value of the model element value)Determine whether the given model element should be exposed as a query property. |
| protected boolean | Returns: whether the element value is eligiblethe model element value value)Determine whether the given model element value is eligible for exposure. |
| public boolean | |
| public boolean | isRedirectView()
Implements org. Returns "true" indicating this view performs a redirect. |
| protected boolean | Returns: true if the target URL has a remote host, false if
the URL does not have a host or the "host" property is not configuredthe target redirect URL targetUrl)Whether the given targetUrl has a host that is a "foreign" system in which
case |
| protected Map | Returns: the filtered Map of eligible query propertiesthe original model Map model)Determine name-value pairs for query strings, which will be stringified,
URL-encoded and formatted by |
| protected void | renderMergedOutputModel(Map<String, Object>
combined output Map (never model, HttpServletRequest null),
with dynamic values taking precedence over static attributescurrent HTTP request request, HttpServletResponse current HTTP response response)Implements abstract org. Convert model to request parameters and redirect to the given URL. |
| protected StringBuilder | replaceUriTemplateVariables(String
the redirect URL targetUrl, Map<String, Object> a Map that contains model attributes model, Map<String, String> current request URI variables to use currentUriVariables, String the encoding scheme to use encodingScheme)Replace URI template variables in the target URL with encoded model attributes or URI variables from the current request. |
| protected void | sendRedirect(HttpServletRequest
current HTTP request (allows for reacting to request method) request, HttpServletResponse current HTTP response (for sending response headers) response, String the target URL to redirect to targetUrl, boolean whether to stay compatible with HTTP 1.0 clients http10Compatible)Send a redirect back to the HTTP client. |
| public void | setContextRelative(boolean contextRelative)
Set whether to interpret a given URL that starts with a slash ("/") as relative to the current ServletContext, i.e. as relative to the web application root. |
| public void | |
| public void | setExpandUriTemplateVariables(boolean expandUriTemplateVariables)
Whether to treat the redirect URL as a URI template. |
| public void | setExposeModelAttributes(final boolean exposeModelAttributes)
Set the |
| public void | |
| public void | |
| public void | setPropagateQueryParams(boolean propagateQueryParams)
When set to |
| public void | |
| protected String | Returns: the updated URL or the same as URL as the one passed inthe given redirect URL targetUrl, Map<String, Object> model, HttpServletRequest request, HttpServletResponse response)Find the registered |
| protected String |
| contextRelative | back to summary |
|---|---|
| private boolean contextRelative | |
| encodingScheme | back to summary |
|---|---|
| private String encodingScheme
| |
| expandUriTemplateVariables | back to summary |
|---|---|
| private boolean expandUriTemplateVariables | |
| exposeModelAttributes | back to summary |
|---|---|
| private boolean exposeModelAttributes | |
| hosts | back to summary |
|---|---|
| private String[] hosts
| |
| http10Compatible | back to summary |
|---|---|
| private boolean http10Compatible | |
| propagateQueryParams | back to summary |
|---|---|
| private boolean propagateQueryParams | |
| statusCode | back to summary |
|---|---|
| private HttpStatusCode statusCode
| |
| URI_TEMPLATE_VARIABLE_PATTERN | back to summary |
|---|---|
| private static final Pattern URI_TEMPLATE_VARIABLE_PATTERN | |
| RedirectView | back to summary |
|---|---|
| public RedirectView() Constructor for use as a bean. | |
| RedirectView | back to summary |
|---|---|
| public RedirectView(String url) Create a new RedirectView with the given URL. The given URL will be considered as relative to the web server, not as relative to the current ServletContext.
| |
| RedirectView | back to summary |
|---|---|
| public RedirectView(String url, boolean contextRelative) Create a new RedirectView with the given URL.
| |
| RedirectView | back to summary |
|---|---|
| public RedirectView(String url, boolean contextRelative, boolean http10Compatible) Create a new RedirectView with the given URL.
| |
| RedirectView | back to summary |
|---|---|
| public RedirectView(String url, boolean contextRelative, boolean http10Compatible, boolean exposeModelAttributes) Create a new RedirectView with the given URL.
| |
| appendCurrentQueryParams | back to summary |
|---|---|
| protected void appendCurrentQueryParams(StringBuilder targetUrl, HttpServletRequest request) Append the query string of the current request to the target redirect URL.
| |
| appendQueryProperties | back to summary |
|---|---|
| protected void appendQueryProperties(StringBuilder targetUrl, Map<String, Object> model, String encodingScheme) throws UnsupportedEncodingException Append query properties to the redirect URL. Stringifies, URL-encodes and formats model attributes as query properties.
| |
| createTargetUrl | back to summary |
|---|---|
| protected final String createTargetUrl(Map<String, Object> model, HttpServletRequest request) throws UnsupportedEncodingException Create the target URL by checking if the redirect string is a URI template first, expanding it with the given model, and then optionally appending simple type model attributes as query String parameters. | |
| getContextPath | back to summary |
|---|---|
| private String getContextPath(HttpServletRequest request) | |
| getCurrentRequestUriVariables | back to summary |
|---|---|
private Map
| |
| getHosts | back to summary |
|---|---|
| public String[] getHosts() Return the configured application hosts.
| |
| getHttp11StatusCode | back to summary |
|---|---|
| protected HttpStatusCode getHttp11StatusCode(HttpServletRequest request, HttpServletResponse response, String targetUrl) Determines the status code to use for HTTP 1.1 compatible requests. The default implementation returns the
| |
| isContextRequired | back to summary |
|---|---|
| protected boolean isContextRequired() Overrides org. An ApplicationContext is not strictly required for RedirectView.
| |
| isEligibleProperty | back to summary |
|---|---|
| protected boolean isEligibleProperty(String key, Object value) Determine whether the given model element should be exposed as a query property. The default implementation considers Strings and primitives as eligible, and also arrays and Collections/Iterables with corresponding elements. This can be overridden in subclasses. | |
| isEligibleValue | back to summary |
|---|---|
| protected boolean isEligibleValue(Object value) Determine whether the given model element value is eligible for exposure. The default implementation considers primitives, strings, numbers, dates,
URIs, URLs etc as eligible, according to
| |
| isPropagateQueryProperties | back to summary |
|---|---|
| public boolean isPropagateQueryProperties() Whether to propagate the query params of the current URL.
| |
| isRedirectView | back to summary |
|---|---|
| public boolean isRedirectView() Implements org. Returns "true" indicating this view performs a redirect.
| |
| isRemoteHost | back to summary |
|---|---|
| protected boolean isRemoteHost(String targetUrl) Whether the given targetUrl has a host that is a "foreign" system in which
case This method returns
| |
| queryProperties | back to summary |
|---|---|
| protected Map Determine name-value pairs for query strings, which will be stringified,
URL-encoded and formatted by This implementation filters the model through checking
| |
| renderMergedOutputModel | back to summary |
|---|---|
| protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws IOException Implements abstract org. Convert model to request parameters and redirect to the given URL.
| |
| replaceUriTemplateVariables | back to summary |
|---|---|
| protected StringBuilder replaceUriTemplateVariables(String targetUrl, Map<String, Object> model, Map<String, String> currentUriVariables, String encodingScheme) throws UnsupportedEncodingException Replace URI template variables in the target URL with encoded model attributes or URI variables from the current request. Model attributes referenced in the URL are removed from the model. | |
| sendRedirect | back to summary |
|---|---|
| protected void sendRedirect(HttpServletRequest request, HttpServletResponse response, String targetUrl, boolean http10Compatible) throws IOException Send a redirect back to the HTTP client.
| |
| setContextRelative | back to summary |
|---|---|
| public void setContextRelative(boolean contextRelative) Set whether to interpret a given URL that starts with a slash ("/") as relative to the current ServletContext, i.e. as relative to the web application root. Default is "false": A URL that starts with a slash will be interpreted as absolute, i.e. taken as-is. If "true", the context path will be prepended to the URL in such a case. | |
| setEncodingScheme | back to summary |
|---|---|
| public void setEncodingScheme(String encodingScheme) Set the encoding scheme for this view. Default is the request's encoding scheme (which is ISO-8859-1 if not specified otherwise). | |
| setExpandUriTemplateVariables | back to summary |
|---|---|
| public void setExpandUriTemplateVariables(boolean expandUriTemplateVariables) Whether to treat the redirect URL as a URI template.
Set this flag to Defaults to | |
| setExposeModelAttributes | back to summary |
|---|---|
| public void setExposeModelAttributes(final boolean exposeModelAttributes) Set the Defaults to | |
| setHosts | back to summary |
|---|---|
| public void setHosts(String... hosts) Configure one or more hosts associated with the application. All other hosts will be considered external hosts. In effect, this property provides a way turn off encoding via
If not set (the default) all URLs are encoded through the response.
| |
| setHttp10Compatible | back to summary |
|---|---|
| public void setHttp10Compatible(boolean http10Compatible) Set whether to stay compatible with HTTP 1.0 clients. In the default implementation, this will enforce HTTP status code 302
in any case, i.e. delegate to Many HTTP 1.1 clients treat 302 just like 303, not making any difference. However, some clients depend on 303 when redirecting after a POST request; turn this flag off in such a scenario. | |
| setPropagateQueryParams | back to summary |
|---|---|
| public void setPropagateQueryParams(boolean propagateQueryParams) When set to Defaults to
| |
| setStatusCode | back to summary |
|---|---|
| public void setStatusCode(HttpStatusCode statusCode) Set the status code for this view. Default is to send 302/303, depending on the value of the
| |
| updateTargetUrl | back to summary |
|---|---|
| protected String updateTargetUrl(String targetUrl, Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) Find the registered | |
| urlEncode | back to summary |
|---|---|
| protected String urlEncode(String input, String encodingScheme) throws UnsupportedEncodingException URL-encode the given input String with the given encoding scheme. The default implementation uses
| |