加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 8:获取选择性请求参数

发布时间:2020-12-15 05:12:45 所属栏目:Java 来源:网络整理
导读:我试图从请求中找到以MultiFileId_开头的所有请求参数 我正在迭代所有请求键映射和checkig是否每个键都以MultiFileId_开头,如果匹配则将其值添加到列表中 ListString uploadedFileIds = new ArrayListString(); for (Object p : request.getParameterMap().k
我试图从请求中找到以MultiFileId_开头的所有请求参数

我正在迭代所有请求键映射和checkig是否每个键都以MultiFileId_开头,如果匹配则将其值添加到列表中

List<String> uploadedFileIds = new ArrayList<String>();

    for (Object p : request.getParameterMap().keySet()) {
        if(p.toString().startsWith("MultiFileId_")) {
            String uploadedFileId = request.getParameter(p.toString());
            uploadedFileIds.add(uploadedFileId);
        }
    }

在Java 8中有一种简单的方法可以实现这一点吗?

解决方法

如果您确定每个参数只有一个值:

import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class Example1 {
    public void example(HttpServletRequest request) {

        List<String> uploadedFileIds = Collections
                .list(request.getParameterNames())
                .stream()
                .filter(parameterName -> parameterName.startsWith("MultiFileId_"))
                .map(request::getParameter)
                .collect(Collectors.toList());
    }
}

如果您不确定参数是否具有多个值(即request.getParameterValues(“MultiFileId_XXX”)返回长度为> 1的String []),您可以使用:

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class Example2 {
    public void example(HttpServletRequest request) {

        List<String> uploadedFileIds = Collections
                .list(request.getParameterNames())
                .stream()
                .filter(parameterName -> parameterName.startsWith("MultiFileId_"))
                .flatMap(parameterName -> Arrays.stream(
                        request.getParameterValues(parameterName)))
                .collect(Collectors.toList());
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读