日期:2014-05-17  浏览次数:20793 次

${map[ ]} 取值的问题。
这两天工作中遇到一个很纳闷的一个问题,关于在jsp前台页面 使用el表达式取得map里面值的问题。
 当map 定义成 <String,String>,能正常获取值 
 

   //后台java代码
   Map<String,String>  map  = new HashMap<String,String>();
   map.put("11","aaaaa");
   map.put("22","bbbbb");
  //省略set方法
  
   /****下面是前台jsp 代码**/
   ${map};
   ${map["11"]};

  但是当map的key定义成Int型的,就无法通过map的key获取到value,请高手指正。

   //后台java代码
   Map<Integer,String>>  map  = new HashMap<Integer,String>();
   map.put(11,"aaaaa");
   map.put(22,"bbbbb");
  //省略set方法
  
   /****下面是前台jsp 代码**/
   ${map};
   ${map["11"]}; 
   ${map[11]};

------解决方案--------------------
jsp页面中,${map[]}取值的时候,如果是数字的话 jsp会认为是Long型 java中map.put的时候 key要是Long.比如map.put(0L,"111");
------解决方案--------------------
试下4楼说的,我以前也出现过这样的问题,大致记得是4楼说的这个原因。