使用url?拼接参数进行传值时,后端获取参数可从request中获取ParameterMap
然而,ParameterMap的类型为 Map<String, String[]>,当我想要把这个map传递至mybatis中进行dao操作时,取值比较麻烦。
所以,如果我能确定每个参数的值都是唯一,那么我可以将Map<String, String[]>转为Map<String, Object>
上代码!
Map<String, Object> param = new HashMap<String, Object>();
Map<String, String[]> reqMap = request.getParameterMap();
Set<Map.Entry<String, String[]>> set = reqMap.entrySet();
Iterator<Map.Entry<String, String[]>> it = set.iterator();
while (it.hasNext()) {
Map.Entry<String, String[]> entry = it.next();
for (String str : entry.getValue()) {
param.put(entry.getKey(), str);
}
}
此处场景为:需要验权–>需要传递token,但是需要走get方法,不能用post,所以将token拼接在url后。在切面验权时:
String token =null;
Map<String, String[]> parameterMap = request.getParameterMap();
if (parameterMap.containsKey("Authorization")){
String[] parameterMaps = parameterMap.get("Authorization");
token = parameterMaps[0];
}else {
token = request.getHeader("Authorization");
}
参数通过request.getParameterMap()取出之后再进行类型转换,就可以传递至service、dao