緣由El表達(dá)式在調(diào)用Map的時(shí)候,后臺(tái)傳過來的Map的key不一定是一個(gè)固定的值,需要根據(jù)另外一個(gè)對(duì)象的id作為key來put,或者更加復(fù)雜的組合id+"string"作為一個(gè)key,對(duì)于平常使用開固定的key的我來說,以前學(xué)過也忘記了,一時(shí)想不出怎么做,現(xiàn)在我們來復(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"; } 沒錯(cuò),我們的目的就是將大于80分的同學(xué)顯示評(píng)級(jí)為良。接下來是前端的處理。 先引入,標(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)簽庫,或者使用<%@ taglib uri="http://java./jsp/jstl/functions" prefix="fn"%>這個(gè)標(biāo)簽庫。
|
|
|