Introduce alias for 'value' attribute in @ActionMapping
Issue: SPR-11393
This commit is contained in:
parent
1a56b47502
commit
0d6b01b694
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2015 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.
|
||||
|
|
@ -22,39 +22,51 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
import org.springframework.web.bind.annotation.Mapping;
|
||||
|
||||
/**
|
||||
* Annotation for mapping Portlet action requests onto handler methods.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
* @author Sam Brannen
|
||||
* @since 3.0
|
||||
* @see org.springframework.web.bind.annotation.RequestMapping
|
||||
*/
|
||||
@Target({ElementType.METHOD})
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@Mapping
|
||||
public @interface ActionMapping {
|
||||
|
||||
/**
|
||||
* The name of the action, according to the Portlet 2.0
|
||||
* "javax.portlet.action" parameter.
|
||||
* <p>If not specified, the method will be used as default handler:
|
||||
* i.e. for action requests where no specific action mapping was found.
|
||||
* <p>Note that all such annotated action methods only apply within the
|
||||
* {@code @RequestMapping} constraints of the containing handler class.
|
||||
* @see javax.portlet.ActionRequest#ACTION_NAME
|
||||
* Alias for {@link #name}.
|
||||
*/
|
||||
@AliasFor(attribute = "name")
|
||||
String value() default "";
|
||||
|
||||
/**
|
||||
* The name of the action, according to the Portlet 2.0
|
||||
* {@code javax.portlet.action} parameter.
|
||||
* <p>If not specified, the annotated method will be used as a default
|
||||
* handler: i.e. for action requests where no specific action mapping
|
||||
* was found.
|
||||
* <p>Note that all such annotated action methods only apply within the
|
||||
* {@code @RequestMapping} constraints of the containing handler class.
|
||||
* @since 4.2
|
||||
* @see javax.portlet.ActionRequest#ACTION_NAME
|
||||
* @see #value
|
||||
*/
|
||||
@AliasFor(attribute = "value")
|
||||
String name() default "";
|
||||
|
||||
/**
|
||||
* The parameters of the mapped request, narrowing the primary mapping.
|
||||
* <p>Same format for any environment: a sequence of "myParam=myValue" style
|
||||
* expressions, with a request only mapped if each such parameter is found
|
||||
* to have the given value. "myParam" style expressions are also supported,
|
||||
* <p>Same format for any environment: a sequence of {@code "myParam=myValue"}
|
||||
* style expressions, with a request only mapped if each such parameter is found
|
||||
* to have the given value. {@code "myParam"} style expressions are also supported,
|
||||
* with such parameters having to be present in the request (allowed to have
|
||||
* any value). Finally, "!myParam" style expressions indicate that the
|
||||
* any value). Finally, {@code "!myParam"} style expressions indicate that the
|
||||
* specified parameter is <i>not</i> supposed to be present in the request.
|
||||
* @see org.springframework.web.bind.annotation.RequestMapping#params()
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ public class AnnotationMethodHandlerAdapter extends PortletContentGenerator
|
|||
EventMapping eventMapping = AnnotationUtils.findAnnotation(method, EventMapping.class);
|
||||
RequestMapping requestMapping = AnnotationUtils.findAnnotation(method, RequestMapping.class);
|
||||
if (actionMapping != null) {
|
||||
mappingInfo.initPhaseMapping(PortletRequest.ACTION_PHASE, actionMapping.value(), actionMapping.params());
|
||||
mappingInfo.initPhaseMapping(PortletRequest.ACTION_PHASE, actionMapping.name(), actionMapping.params());
|
||||
}
|
||||
if (renderMapping != null) {
|
||||
mappingInfo.initPhaseMapping(PortletRequest.RENDER_PHASE, renderMapping.value(), renderMapping.params());
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2015 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.
|
||||
|
|
@ -163,7 +163,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp
|
|||
RequestMapping requestMapping = AnnotationUtils.findAnnotation(method, RequestMapping.class);
|
||||
if (actionMapping != null) {
|
||||
params = StringUtils.mergeStringArrays(params, actionMapping.params());
|
||||
predicate = new ActionMappingPredicate(actionMapping.value(), params);
|
||||
predicate = new ActionMappingPredicate(actionMapping.name(), params);
|
||||
}
|
||||
else if (renderMapping != null) {
|
||||
params = StringUtils.mergeStringArrays(params, renderMapping.params());
|
||||
|
|
|
|||
|
|
@ -1163,7 +1163,7 @@ public class Portlet20AnnotationControllerTests {
|
|||
@RequestMapping("VIEW")
|
||||
private static class MyPortlet20DispatchingController {
|
||||
|
||||
@ActionMapping("this")
|
||||
@ActionMapping(name = "this")
|
||||
public void myHandle(StateAwareResponse response) {
|
||||
response.setRenderParameter("test", "value");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue