1 17 18 package org.pentaho.core.solution; 19 20 import java.util.Iterator ; 21 import java.util.Map ; 22 23 import javax.servlet.http.HttpServletRequest ; 24 25 import org.pentaho.util.HttpUtil; 26 27 public class HttpRequestParameterProvider extends SimpleParameterProvider { 28 29 private HttpServletRequest request; 30 31 public HttpRequestParameterProvider(HttpServletRequest request) { 32 this.request = request; 33 setServletRequestParameters(request.getParameterMap()); 34 35 if (request.getParameter("_PENTAHO_ADDITIONAL_PARAMS_") != null) { String additionalParameters = request.getParameter("_PENTAHO_ADDITIONAL_PARAMS_"); int idx = additionalParameters.indexOf("?"); if (idx > 0) { 39 additionalParameters = additionalParameters.substring(idx + 1); 40 } 41 Map additionalParms = HttpUtil.parseQueryString(additionalParameters); 42 setServletRequestParameters(additionalParms); 43 } 44 } 45 46 50 private void setServletRequestParameters( Map paramMap ) { 51 for ( Iterator it = paramMap.entrySet().iterator(); it.hasNext(); ) { 52 Map.Entry entry = (Map.Entry )it.next(); 53 Object value = entry.getValue(); 54 if (value != null) { 55 if ( (value instanceof Object []) && ( ((Object [])value).length == 1 ) ) { 56 setParameter( (String )entry.getKey(), String.valueOf( ((Object [])value)[0] ) ); 57 } 58 else { 59 setParameter( (String )entry.getKey(), value ); 60 } 61 } 62 } 63 } 64 65 public HttpServletRequest getRequest() { 66 return request; 67 } 68 69 } 70 | Popular Tags |