Browse Source

Introduce alias for 'value' attribute in @RenderMapping

Issue: SPR-11393
pull/811/head
Sam Brannen 10 years ago
parent
commit
485790dc0e
  1. 28
      spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/bind/annotation/RenderMapping.java
  2. 2
      spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java
  3. 2
      spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java
  4. 12
      spring-webmvc-portlet/src/test/java/org/springframework/web/portlet/mvc/annotation/Portlet20AnnotationControllerTests.java

28
spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/bind/annotation/RenderMapping.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2009 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,12 +22,14 @@ import java.lang.annotation.Retention; @@ -22,12 +22,14 @@ 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 render requests onto handler methods.
*
* @author Juergen Hoeller
* @author Sam Brannen
* @since 3.0
* @see org.springframework.web.bind.annotation.RequestMapping
*/
@ -37,23 +39,33 @@ import org.springframework.web.bind.annotation.Mapping; @@ -37,23 +39,33 @@ import org.springframework.web.bind.annotation.Mapping;
@Mapping
public @interface RenderMapping {
/**
* Alias for {@link #windowState}.
*/
@AliasFor(attribute = "windowState")
String value() default "";
/**
* The window state that the annotated render method applies for.
* <p>If not specified, the render method will be invoked for any
* window state within its general mapping.
* <p>Standard Portlet spec values: "NORMAL", "MAXIMIZED", "MINIMIZED".
* Custom window states can be used as well, as supported by the portal.
* <p>Standard Portlet specification values are supported: {@code "NORMAL"},
* {@code "MAXIMIZED"}, {@code "MINIMIZED"}.
* <p>Custom window states can be used as well, as supported by the portal.
* @since 4.2
* @see #value
* @see javax.portlet.PortletRequest#getWindowState()
*/
String value() default "";
@AliasFor(attribute = "value")
String windowState() 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()
*/

2
spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java

@ -459,7 +459,7 @@ public class AnnotationMethodHandlerAdapter extends PortletContentGenerator @@ -459,7 +459,7 @@ public class AnnotationMethodHandlerAdapter extends PortletContentGenerator
mappingInfo.initPhaseMapping(PortletRequest.ACTION_PHASE, actionMapping.name(), actionMapping.params());
}
if (renderMapping != null) {
mappingInfo.initPhaseMapping(PortletRequest.RENDER_PHASE, renderMapping.value(), renderMapping.params());
mappingInfo.initPhaseMapping(PortletRequest.RENDER_PHASE, renderMapping.windowState(), renderMapping.params());
}
if (resourceMapping != null) {
mappingInfo.initPhaseMapping(PortletRequest.RESOURCE_PHASE, resourceMapping.value(), new String[0]);

2
spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java

@ -167,7 +167,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp @@ -167,7 +167,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp
}
else if (renderMapping != null) {
params = StringUtils.mergeStringArrays(params, renderMapping.params());
predicate = new RenderMappingPredicate(renderMapping.value(), params);
predicate = new RenderMappingPredicate(renderMapping.windowState(), params);
}
else if (resourceMapping != null) {
predicate = new ResourceMappingPredicate(resourceMapping.value());

12
spring-webmvc-portlet/src/test/java/org/springframework/web/portlet/mvc/annotation/Portlet20AnnotationControllerTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 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.
@ -1260,7 +1260,7 @@ public class Portlet20AnnotationControllerTests { @@ -1260,7 +1260,7 @@ public class Portlet20AnnotationControllerTests {
}
@RequestMapping(value="view")
@RequestMapping("view")
public static class FirstController {
@RenderMapping
@ -1277,7 +1277,7 @@ public class Portlet20AnnotationControllerTests { @@ -1277,7 +1277,7 @@ public class Portlet20AnnotationControllerTests {
}
@RequestMapping(value="view")
@RequestMapping("view")
public static class SecondController {
@ResourceMapping("second")
@ -1286,7 +1286,7 @@ public class Portlet20AnnotationControllerTests { @@ -1286,7 +1286,7 @@ public class Portlet20AnnotationControllerTests {
return "resourceSecond";
}
@RenderMapping(value = "MAXIMIZED", params = "report=second")
@RenderMapping(windowState = "MAXIMIZED", params = "report=second")
public String renderSecond(RenderResponse response) {
response.setProperty("RESPONSE", "renderSecond");
return "renderSecond";
@ -1294,7 +1294,7 @@ public class Portlet20AnnotationControllerTests { @@ -1294,7 +1294,7 @@ public class Portlet20AnnotationControllerTests {
}
@RequestMapping(value="view")
@RequestMapping("view")
public static class ThirdController {
@ResourceMapping("third")
@ -1303,7 +1303,7 @@ public class Portlet20AnnotationControllerTests { @@ -1303,7 +1303,7 @@ public class Portlet20AnnotationControllerTests {
return "resourceThird";
}
@RenderMapping(value = "MAXIMIZED", params = "report=third")
@RenderMapping(windowState = "MAXIMIZED", params = "report=third")
public String renderSecond(RenderResponse response) {
response.setProperty("RESPONSE", "renderThird");
return "renderThird";

Loading…
Cancel
Save