[ ] operator in jsp with EL expression
String index is coerced to an int for arrays and Lists
String[] favoriteMusic = {“Zero 7”, “Tahiti 80”, “BT”, “Frou Frou”};
request.setAttribute(“musicList”, favoriteMusic);
First song is: ${musicList[0]}
Second song is: ${musicList[“1”]}
All : ${musicList}
Maps you can use either operator
java.util.Map musicMap = new java.util.HashMap();
musicMap.put(“Ambient”, “Zero 7”);
musicMap.put(“Surf”, “Tahiti 80”);
musicMap.put(“DJ”, “BT”);
musicMap.put(“Indie”, “Travis”);
request.setAttribute(“musicMap”, musicMap);
Ambient is: ${musicMap.Ambient}
Ambient is: ${musicMap[“Ambient”]}
request.setAttribute(“Genre”, “Ambient”);
Music is ${musicMap[Genre]} evaluates to Music is ${musicMap[ “Ambient” ]}
Nested expressions
java.util.Map musicMap = new java.util.HashMap();
musicMap.put(“Ambient”, “Zero 7”);
musicMap.put(“Surf”, “Tahiti 80”);
musicMap.put(“DJ”, “BT”);
musicMap.put(“Indie”, “Frou Frou”);
request.setAttribute(“musicMap”, musicMap);
String[] musicTypes = {“Ambient”, “Surf”, “DJ”, “Indie”};
request.setAttribute(“MusicType”, musicTypes);
This DOES work in a JSP
Music is ${musicMap[MusicType[0]]}
becomes
Music is ${musicMap[“Ambient”]}
Note
This ${musicMap.Ambient} ( It works )
Is the same as this ${musicMap[“Ambient”]} ( It works )
But this ${musicList[“1”]} CANNOT be turned into this ${musicList.1}