All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.frameworkset.web.servlet.view.DefaultRequestToViewNameTranslator Maven / Gradle / Ivy

Go to download

bboss is a j2ee framework include aop/ioc,mvc,persistent,taglib,rpc,event ,bean-xml serializable and so on.http://www.bbossgroups.com

The newest version!
/*
 *  Copyright 2008 biaoping.yin
 *
 *  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.frameworkset.web.servlet.view;

import javax.servlet.http.HttpServletRequest;

import org.frameworkset.util.Assert;
import org.frameworkset.web.util.UrlPathHelper;

import com.frameworkset.util.StringUtil;

/**
 * 

Title: DefaultRequestToViewNameTranslator.java

*

Description:

*

bboss workgroup

*

Copyright (c) 2008

* @Date 2010-9-28 * @author biaoping.yin * @version 1.0 */ public class DefaultRequestToViewNameTranslator implements RequestToViewNameTranslator { private static final String SLASH = "/"; private String prefix = ""; private String suffix = ""; private String separator = SLASH; private boolean stripLeadingSlash = true; private boolean stripExtension = true; private UrlPathHelper urlPathHelper = new UrlPathHelper(); /** * Set the prefix to prepend to generated view names. * @param prefix the prefix to prepend to generated view names */ public void setPrefix(String prefix) { this.prefix = (prefix != null ? prefix : ""); } /** * Set the suffix to append to generated view names. * @param suffix the suffix to append to generated view names */ public void setSuffix(String suffix) { this.suffix = (suffix != null ? suffix : ""); } /** * Set the value that will replace '/' as the separator * in the view name. The default behavior simply leaves '/' * as the separator. * @param separator the desired separator value */ public void setSeparator(String separator) { this.separator = separator; } /** * Set whether or not leading slashes should be stripped from the URI when * generating the view name. Default is "true". * @param stripLeadingSlash true if leading slashes are to be stripped */ public void setStripLeadingSlash(boolean stripLeadingSlash) { this.stripLeadingSlash = stripLeadingSlash; } /** * Set whether or not file extensions should be stripped from the URI when * generating the view name. Default is "true". * @param stripExtension true if file extensions should be stripped */ public void setStripExtension(boolean stripExtension) { this.stripExtension = stripExtension; } /** * Set if URL lookup should always use the full path within the current servlet * context. Else, the path within the current servlet mapping is used * if applicable (i.e. in the case of a ".../*" servlet mapping in web.xml). * Default is "false". * @param alwaysUseFullPath true if URL lookup should always use the full path * @see org.frameworkset.web.util.UrlPathHelper#setAlwaysUseFullPath */ public void setAlwaysUseFullPath(boolean alwaysUseFullPath) { this.urlPathHelper.setAlwaysUseFullPath(alwaysUseFullPath); } /** * Set if the context path and request URI should be URL-decoded. * Both are returned undecoded by the Servlet API, * in contrast to the servlet path. *

Uses either the request encoding or the default encoding according * to the Servlet spec (ISO-8859-1). * @see org.frameworkset.web.util.UrlPathHelper#setUrlDecode */ public void setUrlDecode(boolean urlDecode) { this.urlPathHelper.setUrlDecode(urlDecode); } /** * Set the {@link org.frameworkset.web.util.UrlPathHelper} to use for * the resolution of lookup paths. *

Use this to override the default UrlPathHelper with a custom subclass, * or to share common UrlPathHelper settings across multiple web components. * @param urlPathHelper the desired helper * @throws IllegalArgumentException if the supplied UrlPathHelper is null */ public void setUrlPathHelper(UrlPathHelper urlPathHelper) { Assert.notNull(urlPathHelper, "UrlPathHelper must not be null"); this.urlPathHelper = urlPathHelper; } /** * Translates the request URI of the incoming {@link HttpServletRequest} * into the view name based on the configured parameters. * @see org.frameworkset.web.util.UrlPathHelper#getLookupPathForRequest * @see #transformPath */ public String getViewName(HttpServletRequest request) { String lookupPath = this.urlPathHelper.getLookupPathForRequest(request); return (this.prefix + transformPath(lookupPath) + this.suffix); } /** * Transform the request URI (in the context of the webapp) stripping * slashes and extensions, and replacing the separator as required. * @param lookupPath the lookup path for the current request, * as determined by the UrlPathHelper * @return the transformed path, with slashes and extensions stripped * if desired */ protected String transformPath(String lookupPath) { String path = lookupPath; if (this.stripLeadingSlash && path.startsWith(SLASH)) { path = path.substring(1); } if (this.stripExtension) { path = StringUtil.stripFilenameExtension(path); } if (!SLASH.equals(this.separator)) { path = StringUtil.replace(path, SLASH, this.separator); } return path; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy