我有一个包含DVD列表的JSP,并希望将所选(复选框)列表发送到第二页进行处理。在我使用的第二页中:
String selected[] = request.getParameterValues("checkboxGroup");
获取所选复选框的列表。我想获得所选索引的关键OR值(bse我正在构建一个表)。例如;如果用户选择了第一个复选框, - >我希望能够访问Pirates或299。
我将2d数组转换为地图,如下所示,如果我能够获取地图的索引,我将能够访问键或值,如下所示:
String [ ][ ] myArray = {
{"Pirates", "299"},
{"Travellers", "145"},
{"Zoopy", "89"},
{"Farewell", "67"},
{"Junies", "98"},
{"WakUp", "55"},
{"Space", "100"},
{"Solar", "199"},
{"Strom", "200"},
{"Wind", "200"}
};
final Map<String, String> map = new HashMap<String, String>(myArray.length);
for (String[] mapping : myArray) {
map.put(mapping[0], mapping[1]);
}
但我感到困惑,不知道从哪里开始,并希望得到更有经验的人的建议。
答案 0 :(得分:1)
地图没有索引,所以你不得不放弃这个想法。
您需要使用索引数据结构,例如List
或数组。也许包含字符串和整数值的List
个自定义对象是合适的吗?
答案 1 :(得分:0)
地图的Key- / Value- / Entry-Sets(正如您所注意到的)集合,即无序列表。所以你实际上可以将它们解析为带有索引的列表,但是文件索引不一致。
答案 2 :(得分:0)
最后......这就是我用过的东西;
TreeMap dvdstree = new TreeMap();
// Add some dvds.
dvdstree.put("Pirates", 5);dvdstree.put("Solar",124);
dvdstree.put("Travellers",145);dvdstree.put("Zoopy", 89);
dvdstree.put("Farewell", 67);
//Get a set of the entries
Set set = dvdstree.entrySet();
// Get an iterator
Iterator iterator = set.iterator();
//Used a count keep track of iteration -> compare with name of checkbox
int count = 0;
//Printing into html table
out.print("<table>");
//Gets the selected checkboxes from previous page
String selected[] = request.getParameterValues("checkboxGroup");
while(iterator.hasNext()) {
Map.Entry me = (Map.Entry)iterator.next();
//used a count to keep a track of where I am in the List
count++;
for(int i=0; i<selected.length; i++){
if(count == Integer.parseInt(selected[i])){
out.print("<tr><td>"+ me.getKey()+ "<td>"+me.getValue()+"<td/></tr>");
//Used this to get value of checkbox so that I could perform arithmetic in my class
String value= (me.getValue()).toString();
double valueDouble = Double.parseDouble(value);
myBean.addPrice(test2);
}
}
}
out.print("<tr><td>Total</td><td>"+myBean.getTotal()+"</td>");
out.print("</table>");