在拦截器中获取请求参数,[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。

posted @ 2016-01-13 17:27  回看欧洲  阅读(1364)  评论(0编辑  收藏  举报