缘由El表达式在调用Map的时候,后台传过来的Map的key不一定是一个固定的值,需要根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个key,对于平常使用开固定的key的我来说,以前学过也忘记了,一时想不出怎么做,现在我们来复习一下。 情景假设有一个情景:我们后台返回一个对象的list,我们根据对象的id作为key放一些关键的值作为value存入Map中。而前台负责显示Map中的关键指标。 @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"; } 没错,我们的目的就是将大于80分的同学显示评级为良。接下来是前端的处理。 先引入,标签。 <%@taglib prefix="c" uri="http://java./jsp/jstl/core" %> 主体内容: <table> 大概就是这样子。如果map的key是一个复杂的组合,例如map(s.getId()+"-3班","良");这样子要怎么获取key呢?同样是上面的代码: <table> <tr> <td>姓名</td> <td>分数</td> <td>评级</td> </tr> <c:forEach items="${lists }" var="s"> 如果要对字符串做更复杂的操作,可以自己做标签库,或者使用<%@ taglib uri="http://java./jsp/jstl/functions" prefix="fn"%>这个标签库。
|
|