public class FrameworkMvcUriComponentsBuilder extends Object
FrameworkMapping annotations. Since this class isn't extensible due to heavy usage of private
 we had to copy and modify the whole class. Spring version updates should seek to take in changes from MvcUriComponentsBuilder
 into this class.
 Creates instances of UriComponentsBuilder
 by pointing to Spring MVC controllers and @RequestMapping methods.
 The static fromXxx(...) methods prepare links relative to the
 current request as determined by a call to
 ServletUriComponentsBuilder.fromCurrentServletMapping().
 
The static fromXxx(UriComponentsBuilder,...) methods can be given
 the baseUrl when operating outside the context of a request.
 
You can also create an MvcUriComponentsBuilder instance with a baseUrl
 via relativeTo(org.springframework.web.util.UriComponentsBuilder)
 and then use the non-static withXxx(...) method variants.
MvcUriComponentsBuilder| Modifier and Type | Class and Description | 
|---|---|
| static class  | FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder | 
| static interface  | FrameworkMvcUriComponentsBuilder.MethodInvocationInfo | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | MVC_URI_COMPONENTS_CONTRIBUTOR_BEAN_NAMEWell-known name for the  CompositeUriComponentsContributorobject in the bean factory. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | FrameworkMvcUriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder baseUrl)Default constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| static <T> T | controller(Class<T> controllerType)Return a "mock" controller instance. | 
| static org.springframework.web.util.UriComponentsBuilder | fromController(Class<?> controllerType)Create a  UriComponentsBuilderfrom the mapping of a controller class
 and current request information including Servlet mapping. | 
| static org.springframework.web.util.UriComponentsBuilder | fromController(org.springframework.web.util.UriComponentsBuilder builder,
              Class<?> controllerType)An alternative to  fromController(Class)that accepts aUriComponentsBuilderrepresenting the base URL. | 
| static FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder | fromMappingName(String mappingName)Create a URL from the name of a Spring MVC controller method's request mapping. | 
| static FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder | fromMappingName(org.springframework.web.util.UriComponentsBuilder builder,
               String name)An alternative to  fromMappingName(String)that accepts aUriComponentsBuilderrepresenting the base URL. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethod(Class<?> controllerType,
          Method method,
          Object... args)Create a  UriComponentsBuilderfrom the mapping of a controller method
 and an array of method argument values. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethod(Method method,
          Object... args)Deprecated. 
 as of 4.2, this is deprecated in favor of the overloaded
 method that also accepts a controllerType argument | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethod(org.springframework.web.util.UriComponentsBuilder baseUrl,
          Class<?> controllerType,
          Method method,
          Object... args)An alternative to  fromMethod(Class, Method, Object...)that accepts aUriComponentsBuilderrepresenting the base URL. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethodCall(Object info)Create a  UriComponentsBuilderby invoking a "mock" controller method. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethodCall(org.springframework.web.util.UriComponentsBuilder builder,
              Object info)An alternative to  fromMethodCall(Object)that accepts aUriComponentsBuilderrepresenting the base URL. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethodName(Class<?> controllerType,
              String methodName,
              Object... args)Create a  UriComponentsBuilderfrom the mapping of a controller
 method and an array of method argument values. | 
| static org.springframework.web.util.UriComponentsBuilder | fromMethodName(org.springframework.web.util.UriComponentsBuilder builder,
              Class<?> controllerType,
              String methodName,
              Object... args)An alternative to  fromMethodName(Class, String, Object...)that
 accepts aUriComponentsBuilderrepresenting the base URL. | 
| static <T> T | on(Class<T> controllerType)Return a "mock" controller instance. | 
| static FrameworkMvcUriComponentsBuilder | relativeTo(org.springframework.web.util.UriComponentsBuilder baseUrl)Create an instance of this class with a base URL. | 
| org.springframework.web.util.UriComponentsBuilder | withController(Class<?> controllerType)An alternative to  fromController(Class)for use with an instance
 of this class created via a call torelativeTo(org.springframework.web.util.UriComponentsBuilder). | 
| FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder | withMappingName(String mappingName)An alternative to  fromMappingName(String)for use with an instance
 of this class created viarelativeTo(org.springframework.web.util.UriComponentsBuilder). | 
| org.springframework.web.util.UriComponentsBuilder | withMethod(Class<?> controllerType,
          Method method,
          Object... args)An alternative to  fromMethod(Class, Method, Object...)for use with an instance of this class created viarelativeTo(org.springframework.web.util.UriComponentsBuilder). | 
| org.springframework.web.util.UriComponentsBuilder | withMethodCall(Object invocationInfo)An alternative to  fromMethodCall(Object)for use with an instance
 of this class created viarelativeTo(org.springframework.web.util.UriComponentsBuilder). | 
| org.springframework.web.util.UriComponentsBuilder | withMethodName(Class<?> controllerType,
              String methodName,
              Object... args)An alternative to  fromMethodName(Class, String, Object...)} for
 use with an instance of this class created viarelativeTo(org.springframework.web.util.UriComponentsBuilder). | 
public static final String MVC_URI_COMPONENTS_CONTRIBUTOR_BEAN_NAME
CompositeUriComponentsContributor object in the bean factory.protected FrameworkMvcUriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder baseUrl)
public static FrameworkMvcUriComponentsBuilder relativeTo(org.springframework.web.util.UriComponentsBuilder baseUrl)
withXxx(...} methods will create URLs relative
 to the given base URL.public static org.springframework.web.util.UriComponentsBuilder fromController(Class<?> controllerType)
UriComponentsBuilder from the mapping of a controller class
 and current request information including Servlet mapping. If the controller
 contains multiple mappings, only the first one is used.controllerType - the controller to build a URI fornull)public static org.springframework.web.util.UriComponentsBuilder fromController(org.springframework.web.util.UriComponentsBuilder builder,
                                                                               Class<?> controllerType)
fromController(Class) that accepts a
 UriComponentsBuilder representing the base URL. This is useful
 when using MvcUriComponentsBuilder outside the context of processing a
 request or to apply a custom baseUrl not matching the current request.builder - the builder for the base URL; the builder will be cloned
 and therefore not modified and may be re-used for further calls.controllerType - the controller to build a URI fornull)public static org.springframework.web.util.UriComponentsBuilder fromMethodName(Class<?> controllerType, String methodName, Object... args)
UriComponentsBuilder from the mapping of a controller
 method and an array of method argument values. This method delegates
 to fromMethod(Class, Method, Object...).controllerType - the controllermethodName - the method nameargs - the argument valuesnullIllegalArgumentException - if there is no matching or
 if there is more than one matching methodpublic static org.springframework.web.util.UriComponentsBuilder fromMethodName(org.springframework.web.util.UriComponentsBuilder builder,
                                                                               Class<?> controllerType,
                                                                               String methodName,
                                                                               Object... args)
fromMethodName(Class, String, Object...) that
 accepts a UriComponentsBuilder representing the base URL. This is
 useful when using MvcUriComponentsBuilder outside the context of processing
 a request or to apply a custom baseUrl not matching the current request.builder - the builder for the base URL; the builder will be cloned
 and therefore not modified and may be re-used for further calls.controllerType - the controllermethodName - the method nameargs - the argument valuesnullIllegalArgumentException - if there is no matching or
 if there is more than one matching methodpublic static org.springframework.web.util.UriComponentsBuilder fromMethodCall(Object info)
UriComponentsBuilder by invoking a "mock" controller method.
 The controller method and the supplied argument values are then used to
 delegate to fromMethod(Class, Method, Object...).
 For example, given this controller:
 @RequestMapping("/people/{id}/addresses")
 class AddressController {
   @RequestMapping("/{country}")
   public HttpEntity getAddressesForCountry(@PathVariable String country) { ... }
   @RequestMapping(value="/", method=RequestMethod.POST)
   public void addAddress(Address address) { ... }
 }
  
 A UriComponentsBuilder can be created:
 
 // Inline style with static import of "MvcUriComponentsBuilder.on"
 MvcUriComponentsBuilder.fromMethodCall(
                on(AddressController.class).getAddressesForCountry("US")).buildAndExpand(1);
 // Longer form useful for repeated invocation (and void controller methods)
 AddressController controller = MvcUriComponentsBuilder.on(AddressController.class);
 controller.addAddress(null);
 builder = MvcUriComponentsBuilder.fromMethodCall(controller);
 controller.getAddressesForCountry("US")
 builder = MvcUriComponentsBuilder.fromMethodCall(controller);
 info - either the value returned from a "mock" controller
 invocation or the "mock" controller itself after an invocationpublic static org.springframework.web.util.UriComponentsBuilder fromMethodCall(org.springframework.web.util.UriComponentsBuilder builder,
                                                                               Object info)
fromMethodCall(Object) that accepts a
 UriComponentsBuilder representing the base URL. This is useful
 when using MvcUriComponentsBuilder outside the context of processing a
 request or to apply a custom baseUrl not matching the current request.builder - the builder for the base URL; the builder will be cloned
 and therefore not modified and may be re-used for further calls.info - either the value returned from a "mock" controller
 invocation or the "mock" controller itself after an invocationpublic static FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder fromMappingName(String mappingName)
The configured
 HandlerMethodMappingNamingStrategy determines the names of controller
 method request mappings at startup. By default all mappings are assigned
 a name based on the capital letters of the class name, followed by "#" as
 separator, and then the method name. For example "PC#getPerson"
 for a class named PersonController with method getPerson. In case the
 naming convention does not produce unique results, an explicit name may
 be assigned through the name attribute of the @RequestMapping
 annotation.
 
This is aimed primarily for use in view rendering technologies and EL expressions. The Spring URL tag library registers this method as a function called "mvcUrl".
For example, given this controller:
 @RequestMapping("/people")
 class PersonController {
   @RequestMapping("/{id}")
   public HttpEntity getPerson(@PathVariable String id) { ... }
 }
  
 A JSP can prepare a URL to the controller method as follows:
 
 <%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
 <a href="${s:mvcUrl('PC#getPerson').arg(0,"123").build()}">Get Person</a>
 
 Note that it's not necessary to specify all arguments. Only the ones
 required to prepare the URL, mainly @RequestParam and @PathVariable).
mappingName - the mapping nameIllegalArgumentException - if the mapping name is not found or
 if there is no unique matchpublic static FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder fromMappingName(org.springframework.web.util.UriComponentsBuilder builder, String name)
fromMappingName(String) that accepts a
 UriComponentsBuilder representing the base URL. This is useful
 when using MvcUriComponentsBuilder outside the context of processing a
 request or to apply a custom baseUrl not matching the current request.builder - the builder for the base URL; the builder will be cloned
 and therefore not modified and may be re-used for further calls.name - the mapping nameIllegalArgumentException - if the mapping name is not found or
 if there is no unique matchpublic static org.springframework.web.util.UriComponentsBuilder fromMethod(Class<?> controllerType, Method method, Object... args)
UriComponentsBuilder from the mapping of a controller method
 and an array of method argument values. The array of values  must match the
 signature of the controller method. Values for @RequestParam and
 @PathVariable are used for building the URI (via implementations of
 UriComponentsContributor) while remaining argument values are ignored and
 can be null.controllerType - the controller typemethod - the controller methodargs - argument values for the controller methodnullpublic static org.springframework.web.util.UriComponentsBuilder fromMethod(org.springframework.web.util.UriComponentsBuilder baseUrl,
                                                                           Class<?> controllerType,
                                                                           Method method,
                                                                           Object... args)
fromMethod(Class, Method, Object...)
 that accepts a UriComponentsBuilder representing the base URL.
 This is useful when using MvcUriComponentsBuilder outside the context of
 processing a request or to apply a custom baseUrl not matching the
 current request.baseUrl - the builder for the base URL; the builder will be cloned
 and therefore not modified and may be re-used for further calls.controllerType - the controller typemethod - the controller methodargs - argument values for the controller methodnull)@Deprecated public static org.springframework.web.util.UriComponentsBuilder fromMethod(Method method, Object... args)
public static <T> T on(Class<T> controllerType)
@RequestMapping method
 on the controller is invoked, the supplied argument values are remembered
 and the result can then be used to create a UriComponentsBuilder
 via fromMethodCall(Object).
 Note that this is a shorthand version of controller(Class) intended
 for inline use (with a static import), for example:
 
MvcUriComponentsBuilder.fromMethodCall(on(FooController.class).getFoo(1)).build();
controllerType - the target controllerpublic static <T> T controller(Class<T> controllerType)
@RequestMapping method
 on the controller is invoked, the supplied argument values are remembered
 and the result can then be used to create UriComponentsBuilder via
 fromMethodCall(Object).
 This is a longer version of on(Class). It is needed with controller
 methods returning void as well for repeated invocations.
 
FooController fooController = controller(FooController.class); fooController.saveFoo(1, null); builder = MvcUriComponentsBuilder.fromMethodCall(fooController); fooController.saveFoo(2, null); builder = MvcUriComponentsBuilder.fromMethodCall(fooController);
controllerType - the target controllerpublic org.springframework.web.util.UriComponentsBuilder withController(Class<?> controllerType)
fromController(Class) for use with an instance
 of this class created via a call to relativeTo(org.springframework.web.util.UriComponentsBuilder).public org.springframework.web.util.UriComponentsBuilder withMethodName(Class<?> controllerType, String methodName, Object... args)
fromMethodName(Class, String, Object...)} for
 use with an instance of this class created via relativeTo(org.springframework.web.util.UriComponentsBuilder).public org.springframework.web.util.UriComponentsBuilder withMethodCall(Object invocationInfo)
fromMethodCall(Object) for use with an instance
 of this class created via relativeTo(org.springframework.web.util.UriComponentsBuilder).public FrameworkMvcUriComponentsBuilder.MethodArgumentBuilder withMappingName(String mappingName)
fromMappingName(String) for use with an instance
 of this class created via relativeTo(org.springframework.web.util.UriComponentsBuilder).public org.springframework.web.util.UriComponentsBuilder withMethod(Class<?> controllerType, Method method, Object... args)
fromMethod(Class, Method, Object...)
 for use with an instance of this class created via relativeTo(org.springframework.web.util.UriComponentsBuilder).Copyright © 2020. All rights reserved.