在拦截器中获取请求参数,[Ljava.lang.String; cannot be cast to java.lang.String报错
Map<String,Object> parametersmap=invocation.getInvocationContext().getParameters();//获取请求参数
Set<String> parametersset=parametersmap.keySet();
for(String key:parametersset){
System.out.println(key+":"+parametersmap.get(key))
}
报错[Ljava.lang.String; cannot be cast to java.lang.String
原因在于parametersmap.get(key)得到的参数并不是String类型,而时String[]数组形式,因此需要对任一个key对应的value进行遍历。
后记:应该使用Map<String,String[]> parametersmap = request.getParameterMap();
这个更清楚。明显返回的value值无论是否多值,全部默认封在String[]里,而不是String。
—————————————————————————————————————行走在人猿的并行线——Laughing_Lz