org.springframework.util.MultiValueMap#forEach ( )源码实例Demo

下面列出了org.springframework.util.MultiValueMap#forEach ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

protected String serializeForm(MultiValueMap<String, Object> formData, Charset charset) {
	StringBuilder builder = new StringBuilder();
	formData.forEach((name, values) ->
			values.forEach(value -> {
				try {
					if (builder.length() != 0) {
						builder.append('&');
					}
					builder.append(URLEncoder.encode(name, charset.name()));
					if (value != null) {
						builder.append('=');
						builder.append(URLEncoder.encode(String.valueOf(value), charset.name()));
					}
				}
				catch (UnsupportedEncodingException ex) {
					throw new IllegalStateException(ex);
				}
			}));

	return builder.toString();
}
 
源代码2 项目: onetwo   文件: FormHttpMessageConverter.java
protected String serializeForm(MultiValueMap<String, String> formData, Charset charset) {
	StringBuilder builder = new StringBuilder();
	formData.forEach((name, values) ->
			values.forEach(value -> {
				try {
					if (builder.length() != 0) {
						builder.append('&');
					}
					builder.append(URLEncoder.encode(name, charset.name()));
					if (value != null) {
						builder.append('=');
						builder.append(URLEncoder.encode(value, charset.name()));
					}
				}
				catch (UnsupportedEncodingException ex) {
					throw new IllegalStateException(ex);
				}
			}));

	return builder.toString();
}
 
/**
 * Return a handler mapping with the mapped ViewControllers.
 */
public AbstractHandlerMapping getHandlerMapping() {
	Map<String, Object> urlMap = new LinkedHashMap<>();
	for (WebMvcStompWebSocketEndpointRegistration registration : this.registrations) {
		MultiValueMap<HttpRequestHandler, String> mappings = registration.getMappings();
		mappings.forEach((httpHandler, patterns) -> {
			for (String pattern : patterns) {
				urlMap.put(pattern, httpHandler);
			}
		});
	}
	WebSocketHandlerMapping hm = new WebSocketHandlerMapping();
	hm.setUrlMap(urlMap);
	hm.setOrder(this.order);
	if (this.urlPathHelper != null) {
		hm.setUrlPathHelper(this.urlPathHelper);
	}
	return hm;
}
 
源代码4 项目: spring-analysis-note   文件: UrlPathHelper.java
/**
 * Decode the given matrix variables via {@link #decodeRequestString} unless
 * {@link #setUrlDecode} is set to {@code true} in which case it is assumed
 * the URL path from which the variables were extracted is already decoded
 * through a call to {@link #getLookupPathForRequest(HttpServletRequest)}.
 * @param request current HTTP request
 * @param vars the URI variables extracted from the URL path
 * @return the same Map or a new Map instance
 */
public MultiValueMap<String, String> decodeMatrixVariables(
		HttpServletRequest request, MultiValueMap<String, String> vars) {

	if (this.urlDecode) {
		return vars;
	}
	else {
		MultiValueMap<String, String> decodedVars = new LinkedMultiValueMap<>(vars.size());
		vars.forEach((key, values) -> {
			for (String value : values) {
				decodedVars.add(key, decodeInternal(request, value));
			}
		});
		return decodedVars;
	}
}
 
protected String serializeForm(MultiValueMap<String, Object> formData, Charset charset) {
	StringBuilder builder = new StringBuilder();
	formData.forEach((name, values) ->
			values.forEach(value -> {
				try {
					if (builder.length() != 0) {
						builder.append('&');
					}
					builder.append(URLEncoder.encode(name, charset.name()));
					if (value != null) {
						builder.append('=');
						builder.append(URLEncoder.encode(String.valueOf(value), charset.name()));
					}
				}
				catch (UnsupportedEncodingException ex) {
					throw new IllegalStateException(ex);
				}
			}));

	return builder.toString();
}
 
protected String serializeForm(MultiValueMap<String, String> formData, Charset charset) {
	StringBuilder builder = new StringBuilder();
	formData.forEach((name, values) ->
			values.forEach(value -> {
				try {
					if (builder.length() != 0) {
						builder.append('&');
					}
					builder.append(URLEncoder.encode(name, charset.name()));
					if (value != null) {
						builder.append('=');
						builder.append(URLEncoder.encode(value, charset.name()));
					}
				}
				catch (UnsupportedEncodingException ex) {
					throw new IllegalStateException(ex);
				}
			}));
	return builder.toString();
}
 
源代码7 项目: spring-analysis-note   文件: BodyInserters.java
@SuppressWarnings("unchecked")
private MultipartInserter withInternal(MultiValueMap<String, ?> values) {
	values.forEach((key, valueList) -> {
		for (Object value : valueList) {
			this.builder.part(key, value);
		}
	});
	return this;
}
 
@Override
@Nullable
public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
		NativeWebRequest request, @Nullable WebDataBinderFactory binderFactory) throws Exception {

	@SuppressWarnings("unchecked")
	Map<String, MultiValueMap<String, String>> matrixVariables =
			(Map<String, MultiValueMap<String, String>>) request.getAttribute(
					HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);

	if (CollectionUtils.isEmpty(matrixVariables)) {
		return Collections.emptyMap();
	}

	MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
	MatrixVariable ann = parameter.getParameterAnnotation(MatrixVariable.class);
	Assert.state(ann != null, "No MatrixVariable annotation");
	String pathVariable = ann.pathVar();

	if (!pathVariable.equals(ValueConstants.DEFAULT_NONE)) {
		MultiValueMap<String, String> mapForPathVariable = matrixVariables.get(pathVariable);
		if (mapForPathVariable == null) {
			return Collections.emptyMap();
		}
		map.putAll(mapForPathVariable);
	}
	else {
		for (MultiValueMap<String, String> vars : matrixVariables.values()) {
			vars.forEach((name, values) -> {
				for (String value : values) {
					map.add(name, value);
				}
			});
		}
	}

	return (isSingleValueMap(parameter) ? map.toSingleValueMap() : map);
}
 
源代码9 项目: tutorials   文件: ReadHeaderRestController.java
@GetMapping("/multiValue")
public ResponseEntity<String> multiValue(@RequestHeader MultiValueMap<String, String> headers) {
    headers.forEach((key, value) -> {
        LOG.info(String.format("Header '%s' = %s", key, value.stream().collect(Collectors.joining("|"))));
    });
    
    return new ResponseEntity<String>(String.format("Listed %d headers", headers.size()), HttpStatus.OK);
}
 
private void generate(Directory root, File pomFile, boolean generateChecksums) {
	String name = StringUtils.getFilename(pomFile.getName());
	String extension = StringUtils.getFilenameExtension(pomFile.getName());
	String prefix = name.substring(0, name.length() - extension.length() - 1);
	File[] files = pomFile.getParentFile().listFiles((f) -> include(f, prefix));
	MultiValueMap<File, MavenCoordinates> fileCoordinates = new LinkedMultiValueMap<>();
	for (File file : files) {
		String rootPath = StringUtils.cleanPath(root.getFile().getPath());
		String relativePath = StringUtils.cleanPath(file.getPath()).substring(rootPath.length() + 1);
		fileCoordinates.add(file.getParentFile(), MavenCoordinates.fromPath(relativePath));
	}
	fileCoordinates.forEach((file, coordinates) -> writeMetadata(file, coordinates, generateChecksums));
}
 
源代码11 项目: onetwo   文件: ExtSpringEncoder.java
@Override
	public void encode(Object requestBody, Type bodyType, RequestTemplate request) throws EncodeException {
		if(requestBody==null){
			super.encode(requestBody, bodyType, request);
			return ;
		}
		if(GET_METHOD.equalsIgnoreCase(request.method()) && requestBody!=null){
//			Map<String, Object> map = beanToMapConvertor.toFlatMap(requestBody);
//			MultiValueMap<String, String> map = RestUtils.toMultiValueStringMap(requestBody);
			MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
			
			// 使用ConsumableValuePutter增强对注解处理
			/*getParamsConvertor.flatObject("", requestBody, (k, v, ctx)->{
				map.add(k, v);
			});*/
			getParamsConvertor.flatObject("", requestBody, new ConsumableValuePutter((k, v) -> {
				map.add(k, v);
			}));
			map.forEach((name, value)->{
				if(value!=null){
					request.query(name, value.toArray(new String[0]));
				}
			});
			return ;
		}
		Object convertedRequestBody = convertRequestBodyIfNecessary(requestBody, request);
		super.encode(convertedRequestBody, bodyType, request);
	}
 
@Nullable
@Override
public Object resolveArgumentValue(MethodParameter parameter, BindingContext bindingContext,
		ServerWebExchange exchange) {

	Map<String, MultiValueMap<String, String>> matrixVariables =
			exchange.getAttribute(HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE);

	if (CollectionUtils.isEmpty(matrixVariables)) {
		return Collections.emptyMap();
	}

	MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
	MatrixVariable annotation = parameter.getParameterAnnotation(MatrixVariable.class);
	Assert.state(annotation != null, "No MatrixVariable annotation");
	String pathVariable = annotation.pathVar();

	if (!pathVariable.equals(ValueConstants.DEFAULT_NONE)) {
		MultiValueMap<String, String> mapForPathVariable = matrixVariables.get(pathVariable);
		if (mapForPathVariable == null) {
			return Collections.emptyMap();
		}
		map.putAll(mapForPathVariable);
	}
	else {
		for (MultiValueMap<String, String> vars : matrixVariables.values()) {
			vars.forEach((name, values) -> {
				for (String value : values) {
					map.add(name, value);
				}
			});
		}
	}

	return (isSingleValueMap(parameter) ? map.toSingleValueMap() : map);
}
 
源代码13 项目: spring-analysis-note   文件: StompHeaders.java
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach(this::addAll);
}
 
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach(this.headers::add);
}
 
private static <K, V> void copyMultiValueMap(MultiValueMap<K,V> source, MultiValueMap<K,V> target) {
	source.forEach((key, value) -> target.put(key, new LinkedList<>(value)));
}
 
private void addRequestParams(MockHttpServletRequest request, MultiValueMap<String, String> map) {
	map.forEach((key, values) -> values.forEach(value -> {
		value = (value != null ? UriUtils.decode(value, StandardCharsets.UTF_8) : null);
		request.addParameter(UriUtils.decode(key, StandardCharsets.UTF_8), value);
	}));
}
 
源代码17 项目: spring-analysis-note   文件: JettyHeadersAdapter.java
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach(this::addAll);
}
 
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach((key, list) -> this.headers.addAll(HttpString.tryFromString(key), list));
}
 
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach(this::addAll);
}
 
@Override
public void addAll(MultiValueMap<String, String> values) {
	values.forEach(this::addAll);
}