diff --git a/spring-web/src/main/java/org/springframework/web/method/HandlerMethod.java b/spring-web/src/main/java/org/springframework/web/method/HandlerMethod.java index cd530db283..7c58cae2c9 100644 --- a/spring-web/src/main/java/org/springframework/web/method/HandlerMethod.java +++ b/spring-web/src/main/java/org/springframework/web/method/HandlerMethod.java @@ -30,13 +30,13 @@ import org.springframework.util.Assert; import org.springframework.util.ClassUtils; /** - * Encapsulates information about a bean method consisting of a {@link #getMethod() method} - * and a {@link #getBean() bean}. Provides convenient access to method parameters, + * Encapsulates information about a handler method consisting of a {@linkplain #getMethod() method} + * and a {@linkplain #getBean() bean}. Provides convenient access to method parameters, * method return value, method annotations. * - *
The class may be created with a bean instance or with a bean name (e.g. lazy bean, - * prototype bean). Use {@link #createWithResolvedBean()} to obtain an {@link HandlerMethod} - * instance with a bean instance initialized through the bean factory. + *
The class may be created with a bean instance or with a bean name (e.g. lazy-init bean, + * prototype bean). Use {@link #createWithResolvedBean()} to obtain a {@link HandlerMethod} + * instance with a bean instance resolved through the associated {@link BeanFactory}. * * @author Arjen Poutsma * @author Rossen Stoyanchev @@ -228,7 +228,7 @@ public class HandlerMethod { } if (obj != null && obj instanceof HandlerMethod) { HandlerMethod other = (HandlerMethod) obj; - return this.bean.equals(other.bean) && this.method.equals(other.method); + return (this.bean.equals(other.bean) && this.method.equals(other.method)); } return false; } diff --git a/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java b/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java index 4661b4af03..a9e6adb5ad 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java +++ b/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java @@ -22,11 +22,11 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; - import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.util.StringUtils; @@ -187,17 +187,17 @@ public class UrlPathHelper { // e.g. with index page: URI="/", servletPath="/index.html" return pathInfo; } - if (this.urlDecode == false) { + if (!this.urlDecode) { // No path info... (not mapped by prefix, nor by extension, nor "/*") // For the default servlet mapping (i.e. "/"), urlDecode=false can // cause issues since getServletPath() returns a decoded path. - // If decoding pathWithinApp yields a match just use pathWithinApp + // If decoding pathWithinApp yields a match just use pathWithinApp. path = getRemainingPath(decodeInternal(request, pathWithinApp), servletPath, false); if (path != null) { return pathWithinApp; } } - // Otherwise, use the full servlet path + // Otherwise, use the full servlet path. return servletPath; } } @@ -230,7 +230,7 @@ public class UrlPathHelper { private String getRemainingPath(String requestUri, String mapping, boolean ignoreCase) { int index1 = 0; int index2 = 0; - for ( ; (index1 < requestUri.length()) && (index2 < mapping.length()); index1++, index2++) { + for (; (index1 < requestUri.length()) && (index2 < mapping.length()); index1++, index2++) { char c1 = requestUri.charAt(index1); char c2 = mapping.charAt(index2); if (c1 == ';') { @@ -257,7 +257,7 @@ public class UrlPathHelper { else if (requestUri.charAt(index1) == ';') { index1 = requestUri.indexOf('/', index1); } - return (index1 != -1) ? requestUri.substring(index1) : ""; + return (index1 != -1 ? requestUri.substring(index1) : ""); } /** @@ -312,8 +312,7 @@ public class UrlPathHelper { if (servletPath == null) { servletPath = request.getServletPath(); } - if (servletPath.length() > 1 && servletPath.endsWith("/") && - shouldRemoveTrailingServletPathSlash(request)) { + if (servletPath.length() > 1 && servletPath.endsWith("/") && shouldRemoveTrailingServletPathSlash(request)) { // On WebSphere, in non-compliant mode, for a "/foo/" case that would be "/foo" // on all other servlet containers: removing trailing slash, proceeding with // that remaining slash as final lookup path... @@ -449,7 +448,6 @@ public class UrlPathHelper { * Remove ";" (semicolon) content from the given request URI if the * {@linkplain #setRemoveSemicolonContent(boolean) removeSemicolonContent} * property is set to "true". Note that "jssessionid" is always removed. - * * @param requestUri the request URI string to remove ";" content from * @return the updated URI string */ @@ -486,7 +484,6 @@ public class UrlPathHelper { * assumed the URL path from which the variables were extracted is already * decoded through a call to * {@link #getLookupPathForRequest(HttpServletRequest)}. - * * @param request current HTTP request * @param vars URI variables extracted from the URL path * @return the same Map or a new Map instance @@ -511,7 +508,6 @@ public class UrlPathHelper { * assumed the URL path from which the variables were extracted is already * decoded through a call to * {@link #getLookupPathForRequest(HttpServletRequest)}. - * * @param request current HTTP request * @param vars URI variables extracted from the URL path * @return the same Map or a new Map instance diff --git a/spring-web/src/test/java/org/springframework/web/method/support/InvocableHandlerMethodTests.java b/spring-web/src/test/java/org/springframework/web/method/support/InvocableHandlerMethodTests.java index d8c2d9794c..e93dce9c42 100644 --- a/spring-web/src/test/java/org/springframework/web/method/support/InvocableHandlerMethodTests.java +++ b/spring-web/src/test/java/org/springframework/web/method/support/InvocableHandlerMethodTests.java @@ -45,6 +45,7 @@ public class InvocableHandlerMethodTests { private NativeWebRequest webRequest; + @Before public void setUp() throws Exception { Method method = Handler.class.getDeclaredMethod("handle", Integer.class, String.class); @@ -52,6 +53,7 @@ public class InvocableHandlerMethodTests { this.webRequest = new ServletWebRequest(new MockHttpServletRequest(), new MockHttpServletResponse()); } + @Test public void resolveArg() throws Exception { StubArgumentResolver intResolver = new StubArgumentResolver(Integer.class, 99); @@ -63,11 +65,9 @@ public class InvocableHandlerMethodTests { handlerMethod.setHandlerMethodArgumentResolvers(composite); Object returnValue = handlerMethod.invokeForRequest(webRequest, null); - assertEquals(1, intResolver.getResolvedParameters().size()); assertEquals(1, stringResolver.getResolvedParameters().size()); assertEquals("99-value", returnValue); - assertEquals("intArg", intResolver.getResolvedParameters().get(0).getParameterName()); assertEquals("stringArg", stringResolver.getResolvedParameters().get(0).getParameterName()); } @@ -83,7 +83,6 @@ public class InvocableHandlerMethodTests { handlerMethod.setHandlerMethodArgumentResolvers(composite); Object returnValue = handlerMethod.invokeForRequest(webRequest, null); - assertEquals(1, intResolver.getResolvedParameters().size()); assertEquals(1, stringResolver.getResolvedParameters().size()); assertEquals("null-null", returnValue); @@ -119,7 +118,6 @@ public class InvocableHandlerMethodTests { handlerMethod.setHandlerMethodArgumentResolvers(composite); Object returnValue = handlerMethod.invokeForRequest(webRequest, null, 2, "value2"); - assertEquals("2-value2", returnValue); } @@ -134,8 +132,7 @@ public class InvocableHandlerMethodTests { fail("Expected exception"); } catch (HttpMessageNotReadableException ex) { - // Expected.. - // Allow HandlerMethodArgumentResolver exceptions to propagate.. + // expected - allow HandlerMethodArgumentResolver exceptions to propagate } } @@ -208,6 +205,7 @@ public class InvocableHandlerMethodTests { fail("Expected exception"); } + @SuppressWarnings("unused") private static class Handler { @@ -216,6 +214,7 @@ public class InvocableHandlerMethodTests { } } + @SuppressWarnings("unused") private static class ExceptionRaisingHandler { @@ -228,9 +227,9 @@ public class InvocableHandlerMethodTests { public void raiseException() throws Throwable { throw t; } - } + private static class ExceptionRaisingArgumentResolver implements HandlerMethodArgumentResolver { @Override diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java index f9c1c29d83..6020f58da0 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2014 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. @@ -74,6 +74,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement /** Whether or not the view should add path variables in the model */ private boolean exposePathVariables = true; + /** * Set the view's name. Helpful for traceability. *
Framework code must call this when constructing views.
@@ -244,9 +245,10 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
* Returns the value of the flag indicating whether path variables should be added to the model or not.
*/
public boolean isExposePathVariables() {
- return exposePathVariables;
+ return this.exposePathVariables;
}
+
/**
* Prepares the view given the specified model, merging it with static
* attributes and a RequestContext attribute, if necessary.
@@ -261,7 +263,6 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
}
Map