Browse Source

fixed @RequestParam(required=false) regression for @InitBinder methods (SPR-6878)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3019 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Juergen Hoeller 16 years ago
parent
commit
94ff6e5fac
  1. 12
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java
  2. 2
      org.springframework.web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodInvoker.java

12
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java

@ -1479,11 +1479,13 @@ public class ServletAnnotationControllerTests { @@ -1479,11 +1479,13 @@ public class ServletAnnotationControllerTests {
}
@InitBinder
public void initBinder(@RequestParam("param1") T p1, int param2) {
public void initBinder(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
}
@ModelAttribute
public void modelAttribute(@RequestParam("param1") T p1, int param2) {
public void modelAttribute(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
}
}
@ -1516,12 +1518,14 @@ public class ServletAnnotationControllerTests { @@ -1516,12 +1518,14 @@ public class ServletAnnotationControllerTests {
@Override
@InitBinder
public void initBinder(@RequestParam("param1") String p1, int param2) {
public void initBinder(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
}
@Override
@ModelAttribute
public void modelAttribute(@RequestParam("param1") String p1, int param2) {
public void modelAttribute(@RequestParam("param1") String p1, @RequestParam(value="paramX", required=false) String px, int param2) {
assertNull(px);
}
}

2
org.springframework.web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodInvoker.java

@ -358,7 +358,7 @@ public class HandlerMethodInvoker { @@ -358,7 +358,7 @@ public class HandlerMethodInvoker {
RequestParam requestParam = (RequestParam) paramAnn;
paramName = requestParam.value();
paramRequired = requestParam.required();
paramDefaultValue = requestParam.defaultValue();
paramDefaultValue = parseDefaultValueAttribute(requestParam.defaultValue());
break;
}
else if (ModelAttribute.class.isInstance(paramAnn)) {

Loading…
Cancel
Save