public class WebMvcLinkBuilder extends TemplateVariableAwareLinkBuilderSupport<WebMvcLinkBuilder>
Link
instances pointing to Spring MVC controllers.Modifier and Type | Method and Description |
---|---|
static Affordance |
afford(Object invocationValue)
|
protected WebMvcLinkBuilder |
createNewInstance(UriComponents components,
List<Affordance> affordances,
TemplateVariables variables) |
protected WebMvcLinkBuilder |
getThis()
Returns the current concrete instance.
|
static WebMvcLinkBuilder |
linkTo(Class<?> controller)
Creates a new
WebMvcLinkBuilder with a base of the mapping annotated to the given controller class. |
static WebMvcLinkBuilder |
linkTo(Class<?> controller,
Map<String,?> parameters)
Creates a new
WebMvcLinkBuilder with a base of the mapping annotated to the given controller class. |
static WebMvcLinkBuilder |
linkTo(Class<?> controller,
Method method) |
static WebMvcLinkBuilder |
linkTo(Class<?> controller,
Method method,
Object... parameters) |
static WebMvcLinkBuilder |
linkTo(Class<?> controller,
Object... parameters)
Creates a new
WebMvcLinkBuilder with a base of the mapping annotated to the given controller class. |
static WebMvcLinkBuilder |
linkTo(Method method) |
static WebMvcLinkBuilder |
linkTo(Method method,
Object... parameters) |
static WebMvcLinkBuilder |
linkTo(Object invocationValue)
Creates a
WebMvcLinkBuilder pointing to a controller method. |
static <T> T |
methodOn(Class<T> controller,
Object... parameters)
Wrapper for
DummyInvocationUtils.methodOn(Class, Object...) to be available in case you work with static
imports of WebMvcLinkBuilder . |
UriComponentsBuilder |
toUriComponentsBuilder()
Returns a
UriComponentsBuilder to continue to build the already built URI in a more fine grained way. |
createNewInstance, toString
addAffordances, getAffordances, slash, slash, toUri, withRel, withSelfRel
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
withRel
public static WebMvcLinkBuilder linkTo(Class<?> controller)
WebMvcLinkBuilder
with a base of the mapping annotated to the given controller class.controller
- the class to discover the annotation on, must not be null.public static WebMvcLinkBuilder linkTo(Class<?> controller, Object... parameters)
WebMvcLinkBuilder
with a base of the mapping annotated to the given controller class. The
additional parameters are used to fill up potentially available path variables in the class scop request mapping.controller
- the class to discover the annotation on, must not be null.parameters
- additional parameters to bind to the URI template declared in the annotation, must not be
null.public static WebMvcLinkBuilder linkTo(Class<?> controller, Map<String,?> parameters)
WebMvcLinkBuilder
with a base of the mapping annotated to the given controller class.
Parameter map is used to fill up potentially available path variables in the class scope request mapping.controller
- the class to discover the annotation on, must not be null.parameters
- additional parameters to bind to the URI template declared in the annotation, must not be
null.public static WebMvcLinkBuilder linkTo(Method method)
public static WebMvcLinkBuilder linkTo(Method method, Object... parameters)
public static WebMvcLinkBuilder linkTo(Class<?> controller, Method method)
public static WebMvcLinkBuilder linkTo(Class<?> controller, Method method, Object... parameters)
public static WebMvcLinkBuilder linkTo(Object invocationValue)
WebMvcLinkBuilder
pointing to a controller method. Hand in a dummy method invocation result you
can create via methodOn(Class, Object...)
or DummyInvocationUtils.methodOn(Class, Object...)
.
@RequestMapping("/customers") class CustomerController { @RequestMapping("/{id}/addresses") HttpEntity<Addresses> showAddresses(@PathVariable Long id) { … } } Link link = linkTo(methodOn(CustomerController.class).showAddresses(2L)).withRel("addresses");The resulting
Link
instance will point to /customers/2/addresses
and have a rel of
addresses
. For more details on the method invocation constraints, see
DummyInvocationUtils.methodOn(Class, Object...)
.invocationValue
- public static Affordance afford(Object invocationValue)
Link
from the WebMvcLinkBuilder
and look up the related Affordance
. Should only
be one.
Link findOneLink = linkTo(methodOn(EmployeeController.class).findOne(id)).withSelfRel() .andAffordance(afford(methodOn(EmployeeController.class).updateEmployee(null, id)));This takes a link and adds an
Affordance
based on another Spring MVC handler method.invocationValue
- public static <T> T methodOn(Class<T> controller, Object... parameters)
DummyInvocationUtils.methodOn(Class, Object...)
to be available in case you work with static
imports of WebMvcLinkBuilder
.controller
- must not be null.parameters
- parameters to extend template variables in the type level mapping.protected WebMvcLinkBuilder getThis()
LinkBuilderSupport
getThis
in class LinkBuilderSupport<WebMvcLinkBuilder>
protected WebMvcLinkBuilder createNewInstance(UriComponents components, List<Affordance> affordances, TemplateVariables variables)
createNewInstance
in class TemplateVariableAwareLinkBuilderSupport<WebMvcLinkBuilder>
public UriComponentsBuilder toUriComponentsBuilder()
UriComponentsBuilder
to continue to build the already built URI in a more fine grained way.Copyright © 2011–2021 Pivotal, Inc.. All rights reserved.