問題描述:點擊左側菜單項,進入對應的具體頁面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,可以方便的做后續的操作。