天天看點

freemarker頁面動态下拉菜單

services中的方法

  1.     public SortedMap getYearMap(){  
  2.         SortedMap dateMap = new TreeMap();  
  3.         int startYear = DateUtil.getYear() - 5;  
  4.         dateMap.put(0, "請選擇");  
  5.         for (int i = 1; i < 6; i++) {  
  6.             dateMap.put(startYear + i,  startYear + i);  
  7.         }  
  8.         return dateMap;  
  9.     }  
  10.     public SortedMap getQuarterMap(){  
  11.         SortedMap quarterMap = new TreeMap();  
  12.         quarterMap.put(0, "請選擇");  
  13.         for (int i = 1; i < 5; i++) {  
  14.             quarterMap.put(i, i);  
  15.         }  
  16.         return quarterMap;  
  17.     } 

action中的代碼

  1. private SortedMap yearMap;  
  2. private SortedMap quarterMap;  
  3. private int searchYear;
  4. private int searchQuarter;
  5. public String doReportList() throws Exception{  
  6.     yearMap = punishService.getYearMap();  
  7.     quarterMap = punishService.getQuarterMap();  
  8.         ......  
  9.         return SUCCESS;  
  10.     } 

freemarker頁面引用

  1. <@ww.select name="'searchYear'" list="yearMap" id="'year'"/>  
  2. <@ww.select name="'searchQuarter'" list="quarterMap" id ="'quarter'" οnchange="'searchContent()'"/> 

看到了頁面中的list後面的map與action中的變量名是一樣的,這樣,背景中的map中的值就被調到頁面中的下拉菜單中了,進而形成了動态下拉菜單。

這種下拉菜單中的資料是固定,如果想要變化的資料怎麼辦,可以根據從資料庫中查詢出來的資料動态的放到這些map中,這樣資料就會随着操作的改變而變化了。

轉載于:https://blog.51cto.com/sucre/408742