将java映射从JSTL/JSP传递到JavaScript方法
我们有两个相关的下拉列表,其中一个下拉列表的结果与另一个下拉列表相关将java映射从JSTL/JSP传递到JavaScript方法,java,javascript,json,jsp,Java,Javascript,Json,Jsp,我们有两个相关的下拉列表,其中一个下拉列表的结果与另一个下拉列表相关 function setOptions(chosen) { var selbox = document.myform.college; selbox.options.length = 0; if (chosen == " ") { selbox.options[selbox.options.length] = new Option('Please select one of the options above fir
function setOptions(chosen) {
var selbox = document.myform.college;
selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' ');
}
selbox.options[selbox.options.length] = new Option('//Choosen from the map passed','oneone');
}
}
我们定义了一个映射,以映射的形式选择什么,如下所示
Map<String,Map<String,String>> topics = new HashMap<String, Map<String,String>>();
Map<String,String> ds = new HashMap<String, String>();
ds.put("Array", "Array");
ds.put("LL", "LL");
topics.put("DS", ds);
Map<String,String> algo = new HashMap<String, String>();
algo.put("BS", "BS");
algo.put("Sorting", "Sorting");
topics.put("Algorithm", algo);
Map<String,String> phil = new HashMap<String, String>();
phil.put("phil1", "phil1");
phil.put("phil2", "phil2");
topics.put("Philosophy", phil);
Map<String,String> others = new HashMap<String, String>();
others.put("others", "others");
topics.put("Others", others);
function setOptions(chosen) {
var selbox = document.myform.college;
selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' ');
}
selbox.options[selbox.options.length] = new Option('//Choosen from the map passed','oneone');
}
}
首先,我认为您最好更改它,使主题成为一个Map
function setOptions(chosen) {
var selbox = document.myform.college;
selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' ');
}
selbox.options[selbox.options.length] = new Option('//Choosen from the map passed','oneone');
}
}
接下来,您可以选择将映射转换为JSON并使用eval在javascript中填充对象,或者手动横切映射键并将它们添加到对象中,这完全取决于您手头的工具将映射序列化为JSON服务器端(您可以使用新的JSONObject(topics);来自JSON.org)然后将json求值为Javascript上的变量。为什么在键和值相同的情况下使用hashmap?这只是一个示例,我可能有一些东西(例如主题代码和名称)您能够解决它吗?我也需要相同的实现。如果您已经解决了,请解释实现。
function setOptions(chosen) {
var selbox = document.myform.college;
selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' ');
}
selbox.options[selbox.options.length] = new Option('//Choosen from the map passed','oneone');
}
}