File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed
main/groovy/org/codehaus/groovy/grails/web/servlet/mvc
test/groovy/org/codehaus/groovy/grails/web/servlet/mvc Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change 1919import java .io .UnsupportedEncodingException ;
2020import java .text .DateFormat ;
2121import java .text .SimpleDateFormat ;
22- import java .util .Date ;
23- import java .util .Iterator ;
24- import java .util .LinkedHashMap ;
25- import java .util .Map ;
22+ import java .util .*;
2623import java .util .concurrent .ConcurrentHashMap ;
2724
2825import javax .servlet .http .HttpServletRequest ;
4037import org .codehaus .groovy .grails .web .util .TypeConvertingMap ;
4138import org .codehaus .groovy .grails .web .util .WebUtils ;
4239import org .grails .databinding .DataBinder ;
40+ import org .codehaus .groovy .runtime .DefaultGroovyMethods ;
4341import org .grails .databinding .DataBindingSource ;
4442import org .grails .databinding .SimpleMapDataBindingSource ;
4543import org .springframework .context .ApplicationContext ;
@@ -251,6 +249,9 @@ public Object get(Object key) {
251249 returnValue = valueArray ;
252250 }
253251 }
252+ else if (returnValue == null && (key instanceof Collection )) {
253+ return DefaultGroovyMethods .subMap (wrappedMap , (Collection )key );
254+ }
254255 }
255256 if ("date.struct" .equals (returnValue )) {
256257 returnValue = lazyEvaluateDateParam (key );
Original file line number Diff line number Diff line change @@ -13,6 +13,16 @@ class GrailsParameterMapTests extends GroovyTestCase {
1313 GrailsParameterMap theMap
1414 MockHttpServletRequest mockRequest = new MockHttpServletRequest ()
1515
16+ void testSubmapViaArraySubscript () {
17+ mockRequest. addParameter(" name" , " Dierk Koenig" )
18+ mockRequest. addParameter(" dob" , " 01/01/1970" )
19+ mockRequest. addParameter(" address.postCode" , " 345435" )
20+ mockRequest. addParameter(" address.town" , " Swindon" )
21+ theMap = new GrailsParameterMap (mockRequest)
22+
23+ assert theMap[' name' , ' dob' ] == [name :" Dierk Koenig" , dob :" 01/01/1970" ]
24+ }
25+
1626 void testDateMessageSourceFormat () {
1727
1828 try {
@@ -288,6 +298,8 @@ class GrailsParameterMapTests extends GroovyTestCase {
288298 String name = (String ) o
289299 params. put(name, theMap. get(name))
290300 }
301+
302+
291303 }
292304
293305 void testMultiDimensionParams () {
You can’t perform that action at this time.
0 commit comments