${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楼说的这个原因。