|
Spring Framework example source code file (RedirectView.java)
The Spring Framework RedirectView.java source code/* * Copyright 2002-2007 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.web.servlet.view; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.ClassUtils; /** * <p>View that redirects to an absolute, context relative, or current request * relative URL, by default exposing all model attributes as HTTP query * parameters. * * <p>A URL for this view is supposed to be a HTTP redirect URL, i.e. * suitable for HttpServletResponse's <code>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. * * <p>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. * * @author Rod Johnson * @author Juergen Hoeller * @author Colin Sampaleanu * @author Sam Brannen * @see #setContextRelative(boolean) * @see #setHttp10Compatible(boolean) * @see #setExposeModelAttributes(boolean) * @see javax.servlet.http.HttpServletResponse#sendRedirect */ public class RedirectView extends AbstractUrlBasedView { /** The default encoding scheme: UTF-8 */ public static final String DEFAULT_ENCODING_SCHEME = "UTF-8"; private boolean contextRelative = false; private boolean http10Compatible = true; private boolean exposeModelAttributes = true; private String encodingScheme = DEFAULT_ENCODING_SCHEME; /** * Constructor for use as a bean. */ public RedirectView() { } /** * Create a new RedirectView with the given URL. * <p>The given URL will be considered as relative to the web server, * not as relative to the current ServletContext. * @param url the URL to redirect to * @see #RedirectView(String, boolean) */ public RedirectView(String url) { super(url); } /** * Create a new RedirectView with the given URL. * @param url the URL to redirect to * @param contextRelative whether to interpret the given URL as * relative to the current ServletContext */ public RedirectView(String url, boolean contextRelative) { super(url); this.contextRelative = contextRelative; } /** * Create a new RedirectView with the given URL. * @param url the URL to redirect to * @param contextRelative whether to interpret the given URL as * relative to the current ServletContext * @param http10Compatible whether to stay compatible with HTTP 1.0 clients */ public RedirectView(String url, boolean contextRelative, boolean http10Compatible) { super(url); this.contextRelative = contextRelative; this.http10Compatible = http10Compatible; } /** * Create a new RedirectView with the given URL. * @param url the URL to redirect to * @param contextRelative whether to interpret the given URL as * relative to the current ServletContext * @param http10Compatible whether to stay compatible with HTTP 1.0 clients * @param exposeModelAttributes whether or not model attributes should be * exposed as query parameters */ public RedirectView(String url, boolean contextRelative, boolean http10Compatible, boolean exposeModelAttributes) { super(url); this.contextRelative = contextRelative; this.http10Compatible = http10Compatible; this.exposeModelAttributes = exposeModelAttributes; } /** * 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. * <p>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. * @see javax.servlet.http.HttpServletRequest#getContextPath */ public void setContextRelative(boolean contextRelative) { this.contextRelative = contextRelative; } /** * Set whether to stay compatible with HTTP 1.0 clients. * <p>In the default implementation, this will enforce HTTP status code 302 * in any case, i.e. delegate to <code>HttpServletResponse.sendRedirect. * Turning this off will send HTTP status code 303, which is the correct * code for HTTP 1.1 clients, but not understood by HTTP 1.0 clients. * <p>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. * @see javax.servlet.http.HttpServletResponse#sendRedirect */ public void setHttp10Compatible(boolean http10Compatible) { this.http10Compatible = http10Compatible; } /** * Set the <code>exposeModelAttributes flag which denotes whether * or not model attributes should be exposed as HTTP query parameters. * <p>Defaults to Other Spring Framework examples (source code examples)Here is a short list of links related to this Spring Framework RedirectView.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.