removed MultipartRequest mixin interface again (avoiding a package dependency cycle)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2663 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
c60ebc27b6
commit
cb2adcaa8d
|
|
@ -17,9 +17,7 @@
|
||||||
package org.springframework.web.portlet.context;
|
package org.springframework.web.portlet.context;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.portlet.PortletRequest;
|
import javax.portlet.PortletRequest;
|
||||||
|
|
@ -27,13 +25,9 @@ import javax.portlet.PortletResponse;
|
||||||
import javax.portlet.PortletSession;
|
import javax.portlet.PortletSession;
|
||||||
|
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.LinkedMultiValueMap;
|
|
||||||
import org.springframework.util.MultiValueMap;
|
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.context.request.NativeWebRequest;
|
import org.springframework.web.context.request.NativeWebRequest;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
import org.springframework.web.multipart.MultipartRequest;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link org.springframework.web.context.request.WebRequest} adapter
|
* {@link org.springframework.web.context.request.WebRequest} adapter
|
||||||
|
|
@ -44,8 +38,6 @@ import org.springframework.web.multipart.MultipartRequest;
|
||||||
*/
|
*/
|
||||||
public class PortletWebRequest extends PortletRequestAttributes implements NativeWebRequest {
|
public class PortletWebRequest extends PortletRequestAttributes implements NativeWebRequest {
|
||||||
|
|
||||||
private MultipartRequest multipartRequest;
|
|
||||||
|
|
||||||
private PortletResponse response;
|
private PortletResponse response;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -55,9 +47,6 @@ public class PortletWebRequest extends PortletRequestAttributes implements Nativ
|
||||||
*/
|
*/
|
||||||
public PortletWebRequest(PortletRequest request) {
|
public PortletWebRequest(PortletRequest request) {
|
||||||
super(request);
|
super(request);
|
||||||
if (request instanceof MultipartRequest) {
|
|
||||||
this.multipartRequest = (MultipartRequest) request;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -166,43 +155,6 @@ public class PortletWebRequest extends PortletRequestAttributes implements Nativ
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public Iterator<String> getFileNames() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return (Iterator<String>) Collections.EMPTY_SET.iterator();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultipartFile getFile(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFile(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MultipartFile> getFiles(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFiles(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, MultipartFile> getFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultiValueMap<String, MultipartFile> getMultiFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return new LinkedMultiValueMap<String, MultipartFile>();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getMultiFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "PortletWebRequest: " + getDescription(true);
|
return "PortletWebRequest: " + getDescription(true);
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ import org.springframework.web.bind.support.WebBindingInitializer;
|
||||||
import org.springframework.web.bind.support.WebRequestDataBinder;
|
import org.springframework.web.bind.support.WebRequestDataBinder;
|
||||||
import org.springframework.web.context.request.NativeWebRequest;
|
import org.springframework.web.context.request.NativeWebRequest;
|
||||||
import org.springframework.web.context.request.WebRequest;
|
import org.springframework.web.context.request.WebRequest;
|
||||||
|
import org.springframework.web.multipart.MultipartRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Support class for invoking an annotated handler method. Operates on the introspection results of a {@link
|
* Support class for invoking an annotated handler method. Operates on the introspection results of a {@link
|
||||||
|
|
@ -415,7 +416,10 @@ public class HandlerMethodInvoker {
|
||||||
if (paramName.length() == 0) {
|
if (paramName.length() == 0) {
|
||||||
paramName = getRequiredParameterName(methodParam);
|
paramName = getRequiredParameterName(methodParam);
|
||||||
}
|
}
|
||||||
Object paramValue = webRequest.getFile(paramName);
|
Object paramValue = null;
|
||||||
|
if (webRequest.getNativeRequest() instanceof MultipartRequest) {
|
||||||
|
paramValue = ((MultipartRequest) webRequest.getNativeRequest()).getFile(paramName);
|
||||||
|
}
|
||||||
if (paramValue == null) {
|
if (paramValue == null) {
|
||||||
String[] paramValues = webRequest.getParameterValues(paramName);
|
String[] paramValues = webRequest.getParameterValues(paramName);
|
||||||
if (paramValues != null && !paramType.isArray()) {
|
if (paramValues != null && !paramType.isArray()) {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ package org.springframework.web.bind.support;
|
||||||
import org.springframework.beans.MutablePropertyValues;
|
import org.springframework.beans.MutablePropertyValues;
|
||||||
import org.springframework.validation.BindException;
|
import org.springframework.validation.BindException;
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
|
import org.springframework.web.context.request.NativeWebRequest;
|
||||||
import org.springframework.web.context.request.WebRequest;
|
import org.springframework.web.context.request.WebRequest;
|
||||||
import org.springframework.web.multipart.MultipartRequest;
|
import org.springframework.web.multipart.MultipartRequest;
|
||||||
|
|
||||||
|
|
@ -99,8 +100,11 @@ public class WebRequestDataBinder extends WebDataBinder {
|
||||||
*/
|
*/
|
||||||
public void bind(WebRequest request) {
|
public void bind(WebRequest request) {
|
||||||
MutablePropertyValues mpvs = new MutablePropertyValues(request.getParameterMap());
|
MutablePropertyValues mpvs = new MutablePropertyValues(request.getParameterMap());
|
||||||
if (request instanceof MultipartRequest) {
|
if (request instanceof NativeWebRequest) {
|
||||||
bindMultipartFiles(((MultipartRequest) request).getFileMap(), mpvs);
|
Object nativeRequest = ((NativeWebRequest) request).getNativeRequest();
|
||||||
|
if (nativeRequest instanceof MultipartRequest) {
|
||||||
|
bindMultipartFiles(((MultipartRequest) nativeRequest).getFileMap(), mpvs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
doBind(mpvs);
|
doBind(mpvs);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,19 +17,13 @@
|
||||||
package org.springframework.web.context.request;
|
package org.springframework.web.context.request;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.faces.context.ExternalContext;
|
import javax.faces.context.ExternalContext;
|
||||||
import javax.faces.context.FacesContext;
|
import javax.faces.context.FacesContext;
|
||||||
|
|
||||||
import org.springframework.util.LinkedMultiValueMap;
|
|
||||||
import org.springframework.util.MultiValueMap;
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
import org.springframework.web.multipart.MultipartRequest;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link WebRequest} adapter for a JSF {@link javax.faces.context.FacesContext}.
|
* {@link WebRequest} adapter for a JSF {@link javax.faces.context.FacesContext}.
|
||||||
|
|
@ -39,9 +33,6 @@ import org.springframework.web.multipart.MultipartRequest;
|
||||||
*/
|
*/
|
||||||
public class FacesWebRequest extends FacesRequestAttributes implements NativeWebRequest {
|
public class FacesWebRequest extends FacesRequestAttributes implements NativeWebRequest {
|
||||||
|
|
||||||
private MultipartRequest multipartRequest;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new FacesWebRequest adapter for the given FacesContext.
|
* Create a new FacesWebRequest adapter for the given FacesContext.
|
||||||
* @param facesContext the current FacesContext
|
* @param facesContext the current FacesContext
|
||||||
|
|
@ -49,9 +40,6 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb
|
||||||
*/
|
*/
|
||||||
public FacesWebRequest(FacesContext facesContext) {
|
public FacesWebRequest(FacesContext facesContext) {
|
||||||
super(facesContext);
|
super(facesContext);
|
||||||
if (facesContext.getExternalContext().getRequest() instanceof MultipartRequest) {
|
|
||||||
this.multipartRequest = (MultipartRequest) facesContext.getExternalContext().getRequest();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -138,43 +126,6 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public Iterator<String> getFileNames() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return (Iterator<String>) Collections.EMPTY_SET.iterator();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultipartFile getFile(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFile(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MultipartFile> getFiles(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFiles(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, MultipartFile> getFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultiValueMap<String, MultipartFile> getMultiFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return new LinkedMultiValueMap<String, MultipartFile>();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getMultiFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "FacesWebRequest: " + getDescription(true);
|
return "FacesWebRequest: " + getDescription(true);
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,6 @@
|
||||||
|
|
||||||
package org.springframework.web.context.request;
|
package org.springframework.web.context.request;
|
||||||
|
|
||||||
import org.springframework.web.multipart.MultipartRequest;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension of the {@link WebRequest} interface, exposing the
|
* Extension of the {@link WebRequest} interface, exposing the
|
||||||
* native request and response objects in a generic fashion.
|
* native request and response objects in a generic fashion.
|
||||||
|
|
@ -28,7 +26,7 @@ import org.springframework.web.multipart.MultipartRequest;
|
||||||
* @author Juergen Hoeller
|
* @author Juergen Hoeller
|
||||||
* @since 2.5.2
|
* @since 2.5.2
|
||||||
*/
|
*/
|
||||||
public interface NativeWebRequest extends WebRequest, MultipartRequest {
|
public interface NativeWebRequest extends WebRequest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the underlying native request object, if available.
|
* Return the underlying native request object, if available.
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,7 @@
|
||||||
package org.springframework.web.context.request;
|
package org.springframework.web.context.request;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
@ -27,12 +25,8 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.LinkedMultiValueMap;
|
|
||||||
import org.springframework.util.MultiValueMap;
|
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
import org.springframework.web.multipart.MultipartRequest;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link WebRequest} adapter for an {@link javax.servlet.http.HttpServletRequest}.
|
* {@link WebRequest} adapter for an {@link javax.servlet.http.HttpServletRequest}.
|
||||||
|
|
@ -47,8 +41,6 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
|
||||||
private static final String HEADER_LAST_MODIFIED = "Last-Modified";
|
private static final String HEADER_LAST_MODIFIED = "Last-Modified";
|
||||||
|
|
||||||
|
|
||||||
private MultipartRequest multipartRequest;
|
|
||||||
|
|
||||||
private HttpServletResponse response;
|
private HttpServletResponse response;
|
||||||
|
|
||||||
private boolean notModified = false;
|
private boolean notModified = false;
|
||||||
|
|
@ -60,9 +52,6 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
|
||||||
*/
|
*/
|
||||||
public ServletWebRequest(HttpServletRequest request) {
|
public ServletWebRequest(HttpServletRequest request) {
|
||||||
super(request);
|
super(request);
|
||||||
if (request instanceof MultipartRequest) {
|
|
||||||
this.multipartRequest = (MultipartRequest) request;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -192,43 +181,6 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public Iterator<String> getFileNames() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return (Iterator<String>) Collections.EMPTY_SET.iterator();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultipartFile getFile(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFile(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MultipartFile> getFiles(String name) {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFiles(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, MultipartFile> getFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MultiValueMap<String, MultipartFile> getMultiFileMap() {
|
|
||||||
if (this.multipartRequest == null) {
|
|
||||||
return new LinkedMultiValueMap<String, MultipartFile>();
|
|
||||||
}
|
|
||||||
return this.multipartRequest.getMultiFileMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ServletWebRequest: " + getDescription(true);
|
return "ServletWebRequest: " + getDescription(true);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue