Example usage for org.springframework.web.util WebUtils getNativeRequest

List of usage examples for org.springframework.web.util WebUtils getNativeRequest

Introduction

In this page you can find the example usage for org.springframework.web.util WebUtils getNativeRequest.

Prototype

@SuppressWarnings("unchecked")
@Nullable
public static <T> T getNativeRequest(ServletRequest request, @Nullable Class<T> requiredType) 

Source Link

Document

Return an appropriate request object of the specified type, if available, unwrapping the given request as far as necessary.

Usage

From source file:sample.SpringMultipartParser.java

public void parse(HttpServletRequest request, String saveDir) throws IOException {
    multipartRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);

    if (multipartRequest == null) {
        LOG.warn("Unable to MultipartHttpServletRequest");
        errors.add("Unable to MultipartHttpServletRequest");
        return;//from   www .ja  v  a2s. c om
    }
    multipartMap = multipartRequest.getMultiFileMap();
    for (Entry<String, List<MultipartFile>> fileEntry : multipartMap.entrySet()) {
        String fieldName = fileEntry.getKey();
        for (MultipartFile file : fileEntry.getValue()) {
            File temp = File.createTempFile("upload", ".dat");
            file.transferTo(temp);
            multiFileMap.add(fieldName, temp);
        }
    }
}

From source file:org.hdiv.web.multipart.HdivStandardServletMultipartResolver.java

@Override
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException {

    MultipartHttpServletRequest multipartHttpServletRequest = WebUtils.getNativeRequest(request,
            MultipartHttpServletRequest.class);
    if (multipartHttpServletRequest != null) {
        // Use MultipartHttpServletRequestWrapper to maintain MultipartHttpServletRequest in first place
        // and obtains parameter values from RequestWrapper, with real values with confidentiality activated
        return new MultipartHttpServletRequestWrapper(request, multipartHttpServletRequest);
    }/*from w ww.j  a  v  a 2 s . co  m*/

    // If MultipartHttpServletRequest instance is not present, parse multipart request
    return super.resolveMultipart(request);
}

From source file:org.hdiv.web.multipart.HdivCommonsMultipartResolver.java

@Override
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException {

    HdivMultipartException multipartException = (HdivMultipartException) request
            .getAttribute(IMultipartConfig.FILEUPLOAD_EXCEPTION);
    if (multipartException != null) {
        Exception orig = multipartException.getOriginal();
        if (orig instanceof MultipartException) {
            throw (MultipartException) orig;
        } else {/*from  ww w. jav a  2s.  c  o m*/
            throw new MultipartException("Could not parse multipart servlet request", orig);
        }
    }

    // If MultipartHttpServletRequest instance is present in request wrappers path, don't call to MultipartResolver
    MultipartHttpServletRequest original = WebUtils.getNativeRequest(request,
            MultipartHttpServletRequest.class);
    if (original != null) {

        // Use MultipartHttpServletRequestWrapper to maintain MultipartHttpServletRequest in first place
        // and obtains parameter values from RequestWrapper, with real values with confidentiality activated
        RequestWrapper requestWrapper = WebUtils.getNativeRequest(request, RequestWrapper.class);
        return new MultipartHttpServletRequestWrapper(request, requestWrapper, original);
    }

    // If MultipartHttpServletRequest instance is not present, parse multipart request
    return super.resolveMultipart(request);
}

From source file:net.paoding.rose.web.paramresolver.ServletRequestDataBinder.java

/**
 * Bind the parameters of the given request to this binder's target, also
 * binding multipart files in case of a multipart request.
 * <p>/*from  w ww  .j a  v  a2s .c o  m*/
 * This call can create field errors, representing basic binding errors like
 * a required field (code "required"), or type mismatch between value and
 * bean property (code "typeMismatch").
 * <p>
 * Multipart files are bound via their parameter name, just like normal HTTP
 * parameters: i.e. "uploadedFile" to an "uploadedFile" bean property,
 * invoking a "setUploadedFile" setter method.
 * <p>
 * The type of the target property for a multipart file can be
 * MultipartFile, byte[], or String. The latter two receive the contents of
 * the uploaded file; all metadata like original file name, content type,
 * etc are lost in those cases.
 * 
 * @param request
 *            request with parameters to bind (can be multipart)
 * @see org.springframework.web.multipart.MultipartHttpServletRequest
 * @see org.springframework.web.multipart.MultipartFile
 * @see #bindMultipartFiles
 * @see #bind(org.springframework.beans.PropertyValues)
 */
public void bind(ServletRequest request) {
    MutablePropertyValues mpvs = new MutablePropertyValues(WebUtils.getParametersStartingWith(request, prefix));
    MultipartRequest multipartRequest = WebUtils.getNativeRequest(request, MultipartRequest.class);
    if (multipartRequest != null) {
        bindMultipart(multipartRequest.getMultiFileMap(), mpvs);
    }
    addBindValues(mpvs, request);
    doBind(mpvs);
}

From source file:org.zht.framework.web.bind.resolver.FormModelMethodArgumentResolver.java

private ServletRequest prepareServletRequest(Object target, NativeWebRequest request,
        MethodParameter parameter) {//  w  w w.j ava 2  s . c o  m

    String modelPrefixName = parameter.getParameterAnnotation(FormModel.class).value();

    HttpServletRequest nativeRequest = (HttpServletRequest) request.getNativeRequest();
    MultipartRequest multipartRequest = WebUtils.getNativeRequest(nativeRequest, MultipartRequest.class);

    MockHttpServletRequest mockRequest = null;
    if (multipartRequest != null) {
        MockMultipartHttpServletRequest mockMultipartRequest = new MockMultipartHttpServletRequest();
        for (MultipartFile file : multipartRequest.getFileMap().values()) {
            mockMultipartRequest.addFile(
                    new MultipartFileWrapper(getNewParameterName(file.getName(), modelPrefixName), file));
        }
        mockRequest = mockMultipartRequest;
    } else {
        mockRequest = new MockHttpServletRequest();
    }

    for (Entry<String, String> entry : getUriTemplateVariables(request).entrySet()) {
        String parameterName = entry.getKey();
        String value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    for (Object parameterEntry : nativeRequest.getParameterMap().entrySet()) {
        Entry<String, String[]> entry = (Entry<String, String[]>) parameterEntry;
        String parameterName = entry.getKey();
        String[] value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    return mockRequest;
}

From source file:com.mmj.app.common.component.FormModelMethodArgumentResolver.java

private ServletRequest prepareServletRequest(Object target, NativeWebRequest request,
        MethodParameter parameter) {// w  w w.  j  a v a  2  s .  c o  m

    String modelPrefixName = parameter.getParameterAnnotation(FormBean.class).value();

    HttpServletRequest nativeRequest = (HttpServletRequest) request.getNativeRequest();
    MultipartRequest multipartRequest = WebUtils.getNativeRequest(nativeRequest, MultipartRequest.class);

    MockHttpServletRequest mockRequest = null;
    if (multipartRequest != null) {
        MockMultipartHttpServletRequest mockMultipartRequest = new MockMultipartHttpServletRequest();
        for (MultipartFile file : multipartRequest.getFileMap().values()) {
            mockMultipartRequest.addFile(
                    new MultipartFileWrapper(getNewParameterName(file.getName(), modelPrefixName), file));
        }
        mockRequest = mockMultipartRequest;
    } else {
        mockRequest = new MockHttpServletRequest();
    }

    for (Entry<String, String> entry : getUriTemplateVariables(request).entrySet()) {
        String parameterName = entry.getKey();
        String value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    for (Object parameterEntry : nativeRequest.getParameterMap().entrySet()) {
        Entry<String, String[]> entry = (Entry<String, String[]>) parameterEntry;
        String parameterName = entry.getKey();
        String[] value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    return mockRequest;
}

From source file:com.fengduo.bee.commons.component.FormModelMethodArgumentResolver.java

@SuppressWarnings("unused")
private ServletRequest prepareServletRequest(Object target, NativeWebRequest request,
        MethodParameter parameter) {/*from  w  ww  .  j  a va2 s. c o m*/

    String modelPrefixName = parameter.getParameterAnnotation(FormBean.class).value();

    HttpServletRequest nativeRequest = (HttpServletRequest) request.getNativeRequest();
    MultipartRequest multipartRequest = WebUtils.getNativeRequest(nativeRequest, MultipartRequest.class);

    MockHttpServletRequest mockRequest = null;
    if (multipartRequest != null) {
        MockMultipartHttpServletRequest mockMultipartRequest = new MockMultipartHttpServletRequest();
        for (MultipartFile file : multipartRequest.getFileMap().values()) {
            mockMultipartRequest.addFile(
                    new MultipartFileWrapper(getNewParameterName(file.getName(), modelPrefixName), file));
        }
        mockRequest = mockMultipartRequest;
    } else {
        mockRequest = new MockHttpServletRequest();
    }

    for (Entry<String, String> entry : getUriTemplateVariables(request).entrySet()) {
        String parameterName = entry.getKey();
        String value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    for (Object parameterEntry : nativeRequest.getParameterMap().entrySet()) {
        Entry<String, String[]> entry = (Entry<String, String[]>) parameterEntry;
        String parameterName = entry.getKey();
        String[] value = entry.getValue();
        if (isFormModelAttribute(parameterName, modelPrefixName)) {
            mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value);
        }
    }

    return mockRequest;
}

From source file:org.hdiv.filter.ValidatorHelperRequest.java

/**
 * Adds one parameter to the request. Since the HttpServletRequest object's parameters are unchanged according to
 * the Servlet specification, the instance of request should be passed as a parameter of type RequestWrapper.
 * /*  w  w  w.j a  va2s.c  o m*/
 * @param request
 *            HttpServletRequest to validate
 * @param name
 *            new parameter name
 * @param value
 *            new parameter value
 * @throws HDIVException
 *             if the request object is not of type RequestWrapper
 */
protected void addParameterToRequest(HttpServletRequest request, String name, Object value) {

    RequestWrapper wrapper = null;

    if (request instanceof RequestWrapper) {
        wrapper = (RequestWrapper) request;
    } else {
        wrapper = (RequestWrapper) WebUtils.getNativeRequest(request, RequestWrapper.class);
    }

    if (wrapper != null) {
        wrapper.addParameter(name, value);
    } else {
        String errorMessage = HDIVUtil.getMessage("helper.notwrapper");
        throw new HDIVException(errorMessage);
    }

}

From source file:com.mystudy.source.spring.mvc.DispatcherServlet.java

/**
 * Clean up any resources used by the given multipart request (if any).
 * @param servletRequest current HTTP request
 * @see MultipartResolver#cleanupMultipart
 *///  w  ww  .j  av  a  2  s . c  o m
protected void cleanupMultipart(HttpServletRequest servletRequest) {
    MultipartHttpServletRequest req = WebUtils.getNativeRequest(servletRequest,
            MultipartHttpServletRequest.class);
    if (req != null) {
        this.multipartResolver.cleanupMultipart(req);
    }
}