如何将请求参数提取到名称值集合中
How to extract request parameter into name value collection
我有一个像
这样的请求参数
usrInfo:fname=firstname&lname=lastname&company=&addressLine1=wewqe&addressLine2=wqewqe&city=qweqwe&country=United+States
我想提取每个名字的值。
我写了下面的方法,但是当它对应的名称对没有值时它失败了。
private String getRequestParamavalue(SlingHttpServletRequest request, String requestParameter, String requestParamName) {
String reqParamValue = null;
if (StringUtils.isNotBlank(request.getParameter(requestParameter))) {
String[] reqParams = request.getParameter(requestParameter).split("&");
Map<String, String> requestParamMap = new HashMap<>();
String value;
for (String param : reqParams) {
String name = param.split("=")[0];
value = StringUtils.isEmpty(param.split("=")[1]) ? "" : param.split("=")[1];
requestParamMap.put(name, value);
}
reqParamValue = requestParamMap.get(requestParamName);
}
return reqParamValue;
}
请给我一个建议。谢谢
@Kali 试试这个
for (String param : reqParams) {
String name = param.split("=")[0];
value = param.split("=").length == 1 ? "" : param.split("=")[1];
requestParamMap.put(name, value);
}
为什么不简单地做 request.getParameter(requestParamName),HTTPServlet Parent class 会为你做解析。
我有一个像
这样的请求参数usrInfo:fname=firstname&lname=lastname&company=&addressLine1=wewqe&addressLine2=wqewqe&city=qweqwe&country=United+States
我想提取每个名字的值。
我写了下面的方法,但是当它对应的名称对没有值时它失败了。
private String getRequestParamavalue(SlingHttpServletRequest request, String requestParameter, String requestParamName) {
String reqParamValue = null;
if (StringUtils.isNotBlank(request.getParameter(requestParameter))) {
String[] reqParams = request.getParameter(requestParameter).split("&");
Map<String, String> requestParamMap = new HashMap<>();
String value;
for (String param : reqParams) {
String name = param.split("=")[0];
value = StringUtils.isEmpty(param.split("=")[1]) ? "" : param.split("=")[1];
requestParamMap.put(name, value);
}
reqParamValue = requestParamMap.get(requestParamName);
}
return reqParamValue;
}
请给我一个建议。谢谢
@Kali 试试这个
for (String param : reqParams) {
String name = param.split("=")[0];
value = param.split("=").length == 1 ? "" : param.split("=")[1];
requestParamMap.put(name, value);
}
为什么不简单地做 request.getParameter(requestParamName),HTTPServlet Parent class 会为你做解析。