緣由El表達(dá)式在調(diào)用Map的時(shí)候,后臺(tái)傳過(guò)來(lái)的Map的key不一定是一個(gè)固定的值,需要根據(jù)另外一個(gè)對(duì)象的id作為key來(lái)put,或者更加復(fù)雜的組合id+"string"作為一個(gè)key,對(duì)于平常使用開(kāi)固定的key的我來(lái)說(shuō),以前學(xué)過(guò)也忘記了,一時(shí)想不出怎么做,現(xiàn)在我們來(lái)復(fù)習(xí)一下。 情景假設(shè)有一個(gè)情景:我們后臺(tái)返回一個(gè)對(duì)象的list,我們根據(jù)對(duì)象的id作為key放一些關(guān)鍵的值作為value存入Map中。而前臺(tái)負(fù)責(zé)顯示Map中的關(guān)鍵指標(biāo)。 @RequestMapping(value="/test") public String test(Model m){ List<Student> lists = service.getAll(); Map<String,String> map = new HashMap<String,String>(); for(Student s : lists){ if(s.getScore() > 80) map.put(s.getId(),"良"); } m.addAttribute("lists", lists); m.addAttribute("map", map); return "index"; } 沒(méi)錯(cuò),我們的目的就是將大于80分的同學(xué)顯示評(píng)級(jí)為良。接下來(lái)是前端的處理。 先引入,標(biāo)簽。 <%@taglib prefix="c" uri="http://java./jsp/jstl/core" %> 主體內(nèi)容: <table> 大概就是這樣子。如果map的key是一個(gè)復(fù)雜的組合,例如map(s.getId()+"-3班","良");這樣子要怎么獲取key呢?同樣是上面的代碼: <table> <tr> <td>姓名</td> <td>分?jǐn)?shù)</td> <td>評(píng)級(jí)</td> </tr> <c:forEach items="${lists }" var="s"> 如果要對(duì)字符串做更復(fù)雜的操作,可以自己做標(biāo)簽庫(kù),或者使用<%@ taglib uri="http://java./jsp/jstl/functions" prefix="fn"%>這個(gè)標(biāo)簽庫(kù)。
|
|