1 16 package org.springframework.webflow.context.servlet; 17 18 import java.util.Iterator ; 19 20 import javax.servlet.http.HttpServletRequest ; 21 22 import org.springframework.binding.collection.CompositeIterator; 23 import org.springframework.binding.collection.StringKeyedMapAdapter; 24 import org.springframework.web.multipart.MultipartHttpServletRequest; 25 import org.springframework.webflow.core.collection.CollectionUtils; 26 27 34 public class HttpServletRequestParameterMap extends StringKeyedMapAdapter { 35 36 39 private HttpServletRequest request; 40 41 44 public HttpServletRequestParameterMap(HttpServletRequest request) { 45 this.request = request; 46 } 47 48 protected Object getAttribute(String key) { 49 if (request instanceof MultipartHttpServletRequest) { 50 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; 51 Object data = multipartRequest.getFileMap().get(key); 52 if (data != null) { 53 return data; 54 } 55 } 56 String [] parameters = request.getParameterValues(key); 57 if (parameters == null) { 58 return null; 59 } else if (parameters.length == 1) { 60 return parameters[0]; 61 } else { 62 return parameters; 63 } 64 } 65 66 protected void setAttribute(String key, Object value) { 67 throw new UnsupportedOperationException ("HttpServletRequest parameter maps are immutable"); 68 } 69 70 protected void removeAttribute(String key) { 71 throw new UnsupportedOperationException ("HttpServletRequest parameter maps are immutable"); 72 } 73 74 protected Iterator getAttributeNames() { 75 if (request instanceof MultipartHttpServletRequest) { 76 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; 77 CompositeIterator iterator = new CompositeIterator(); 78 iterator.add(multipartRequest.getFileMap().keySet().iterator()); 79 iterator.add(CollectionUtils.toIterator(request.getParameterNames())); 80 return iterator; 81 } 82 else { 83 return CollectionUtils.toIterator(request.getParameterNames()); 84 } 85 } 86 } | Popular Tags |