如何使用通配符获取HttpServletRequest中的formData参数?
关于HttpServletRequest通配符获取参数的问题
不行,HttpServletRequest.getParameter()方法本身不支持通配符匹配参数名,你没法直接用类似"packaging1_WILDCARD"的写法来匹配packaging1_1、packaging1_2这类参数。
要获取这类命名规则的参数,你可以通过以下方式实现:
遍历所有参数名,筛选符合规则的参数
先获取请求中所有的参数名枚举,然后逐个判断是否匹配你的前缀(或正则规则),再获取对应的值:Enumeration<String> allParamNames = request.getParameterNames(); List<String> targetParamValues = new ArrayList<>(); while (allParamNames.hasMoreElements()) { String paramName = allParamNames.nextElement(); // 精准匹配:参数名以packaging1_开头且后面跟数字 if (paramName.matches("packaging1_\\d+")) { String value = request.getParameter(paramName); targetParamValues.add(value); // 这里可以直接对单个参数值做业务处理 } }如果知道参数的数字范围,也可以直接循环获取
比如你确定参数是packaging1_0到packaging1_5,可以直接循环数字来获取:for (int i = 0; i <= 5; i++) { String paramName = "packaging1_" + i; String value = request.getParameter(paramName); if (value != null) { // 处理参数值 } }
内容的提问来源于stack exchange,提问作者zinon
相关产品推荐
相关产品推荐

