动态获取后台传过来的值作为select选项

时间:2021-08-12 18:14:41

问题描述:点击左侧菜单项,进入对应的具体页面a.html,页面上方有个select框,点击框后,会浮现选择项。

解决思路:对左侧菜单项添加一个onclick事件,进入后台做具体的查询,将查询到的list的值取出放到map中,再把map传到前台a.html页面。直接传递list不可以么?后面有说明!

贴代码:

后台查询select选项值的list,list取值放到map中,把map传递到前台页面a.html。

public String list(ModelMap modelMap){
List<OhSysDict> list = null;
try {
list = ohSysDictService.findOhSysDict();
} catch (Exception e) {
e.printStackTrace();
}
OhSysDict dict = null;
Map<String, String> selectMap = new HashMap<String, String>();
if(!list.isEmpty() && list.size()>0){
for(int i = 0; i < list.size(); i++){
dict = list.get(i);
String dictId = dict.getDictId();
String dictName = dict.getDictName();
selectMap.put(dictId,dictName);
}
}
modelMap.addAttribute("selectMap",selectMap);
return VIEW_PATH + "/list"; //这里的a就是a.html 因为配置的视图解析器会自动匹配上.html,VIEW_PATH是配置的路径,可以不用管它
}

前台页面a.html相关的代码:

<select id="select1" name="select1" class="form-control js-example-basic-single"  placeholder="请选择机构级别">
<option th:each="s : ${selectMap}" th:value="${s.key}" th:text="${s.value}" xmlns:th="http://www.w3.org/1999/xhtml"></option>
</select>

这里说明为什么放到map,因为select具体选择的时候,是一个value,对应一个text内容(不知道的可以查看本渣渣的JSP select下拉标签 简单使用 里边有说明,还挺详细的,PS:罗里吧嗦啦!!!),把map传递到前台的时候,我们可以在select中遍历,value取出map的key text取出map的value,然后选择的时候选项内容就是dictName对应的value就是dictId,可以方便的做后续的操作。