这个组件比较简单,作用是根据请求URI来获取视图名称

直接看源码

接口:只有一个方法(获取视图名称)

public interface RequestToViewNameTranslator {

String getViewName(HttpServletRequest request) throws Exception;

}

实现类:默认只有一个,直接看源码

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 stripTrailingSlash = true;

private boolean stripExtension = true;

private UrlPathHelper urlPathHelper = new UrlPathHelper();

public void setPrefix(String prefix) {

this.prefix = (prefix != null ? prefix : "");

}

public void setSuffix(String suffix) {

this.suffix = (suffix != null ? suffix : "");

}

public void setSeparator(String separator) {

this.separator = separator;

}

public void setStripLeadingSlash(boolean stripLeadingSlash) {

this.stripLeadingSlash = stripLeadingSlash;

}

public void setStripTrailingSlash(boolean stripTrailingSlash) {

this.stripTrailingSlash = stripTrailingSlash;

}

public void setStripExtension(boolean stripExtension) {

this.stripExtension = stripExtension;

}

public void setAlwaysUseFullPath(boolean alwaysUseFullPath) {

this.urlPathHelper.setAlwaysUseFullPath(alwaysUseFullPath);

}

public void setUrlDecode(boolean urlDecode) {

this.urlPathHelper.setUrlDecode(urlDecode);

}

public void setRemoveSemicolonContent(boolean removeSemicolonContent) {

this.urlPathHelper.setRemoveSemicolonContent(removeSemicolonContent);

}

public void setUrlPathHelper(UrlPathHelper urlPathHelper) {

Assert.notNull(urlPathHelper, "UrlPathHelper must not be null");

this.urlPathHelper = urlPathHelper;

}

@Override

public String getViewName(HttpServletRequest request) {

String lookupPath = this.urlPathHelper.getLookupPathForRequest(request);

return (this.prefix + transformPath(lookupPath) + this.suffix);

}

protected String transformPath(String lookupPath) {

String path = lookupPath;

if (this.stripLeadingSlash && path.startsWith(SLASH)) {

path = path.substring(1);

}

if (this.stripTrailingSlash && path.endsWith(SLASH)) {

path = path.substring(0, path.length() - 1);

}

if (this.stripExtension) {

path = StringUtils.stripFilenameExtension(path);

}

if (!SLASH.equals(this.separator)) {

path = StringUtils.replace(path, SLASH, this.separator);

}

return path;

}

}