Jsp頁面中通過jstl遍歷 java代碼中通過
request.setAttribute("newslist", list);
傳過來的list對象
Java代碼片段如下:
Sql語句如下
select * from (select t.* ,c.column_id,d.level_code from cms_article t ,cms_column_article c ,CMS_COLUMN d where t.id=c.article_id and c.column_id=d.id and d.LEVEL_CODE like'00070008%' and t.state='已發布' order by t.createtime desc) where rownum <6
在java代碼中通過
List list = jdbcTemplate.queryForList(sql); 獲取List集合,(這里的jdbcTemplate是spring的)
此時list的返回值為如下格式:
[
{ID=100000031133, TITLE=英語作文:The Countryside in Summer, AUTHOR=hulicheng, CREATETIME=2013-04-27 17:23:30.0, STATE=已發布, LIMIT_PUB=null, SUMMARY=Summer has come, with its warm sunny days,
, OUTLINK=null, FORM_ID=100000001504, PD_ID=0, KEYWORDS=英語作文 夏日的農村, INDEX_YN=0, COLUMN_ID=100000001811, LEVEL_CODE=00070008},
{ID=100000031125, TITLE=英語作文:I Love Summer , AUTHOR=hulicheng, CREATETIME=2013-04-27 17:19:18.0, STATE=已發布, LIMIT_PUB=null, SUMMARY=It is true that summer is hot, very hot. , OUTLINK=null, FORM_ID=100000001504, PD_ID=0, KEYWORDS=英語作文 I Love Summer , INDEX_YN=0, COLUMN_ID=100000001811, LEVEL_CODE=00070008},
{ID=100000031109, TITLE=初一英語作文:父親給我的禮物, AUTHOR=yinlulu, CREATETIME=2013-04-12 11:17:16.0, STATE=已發布, LIMIT_PUB=null, SUMMARY=When I was young,my father ,who always taught me how to be a true man,told me that it is essential to be tolerant in your life whatever happens.
, OUTLINK=null, FORM_ID=100000001504, PD_ID=0, KEYWORDS=初一 英語作文 父親給我的禮物, INDEX_YN=0, COLUMN_ID=100000001811, LEVEL_CODE=00070008}
]
在action代碼中有如下代碼
request.setAttribute("newslist", list);
那么jsp中通過jstl遍歷的代碼如下
首先引入<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c"%>
<c:if test="${not empty newslist }">
<c:forEach items="${newslist}" var="smart" varStatus="status">
<li><a href="${pageContext.request.contextPath}/article/getAritcleContent.do?id=${smart['ID']}&columnID=${smart['COLUMN_ID']}&sessionid=${pageContext.session.id}&levelCode=${smart['LEVEL_CODE']}">${smart["TITLE"]}
</a></li>
</c:forEach>
</c:if>
Jsp頁面中通過jstl遍歷 java代碼中通過
request.setAttribute("newslist", list);
傳過來的list對象,此時的list對象中包含的是一個個的map,每個map中的value又是一個list集合
Java 代碼:
List<String> courses = new ArrayList<String>();
//添加課程編號1~9
List coursesList = new ArrayList();
for(int i=1;i<10;i++){
//查詢課程的名稱
Map map = myCmsArticleBPO.getQuestionAnswerNameMap(i+"");
//查詢某課程前幾條的數據
List course = myCmsArticleBPO.getQuestionAnswerMap(i+"");
Map courseInfo = new HashMap();
courseInfo.put(map.get("name"),course);
//向list中添加map對象,鍵是課程名,值是 該課程對應的前幾條問題的list集合
coursesList.add(courseInfo);
}
request.setAttribute("aritcleList", coursesList);
這個方法要說一下
public Map getQuestionAnswerNameMap(String id) ,
他的方法體是
String sql="select sb.name ,sb.id from sc_subject sb where sb.id='"+id+"'";
Map map=jdbcTemplate.queryForMap(sql);
return map;
jdbcTemplate是spring的東西,這里的queryForMap方法有些意思
這里的map的返回值的數據如下:
{NAME=語文, ID=1}
此時在java代碼中通過map.get("name") 可以獲得 map中name鍵對應的值 語文
在jsp中通過jstl進行遍歷的代碼如下
<!-- aritcleList中存放的是一個個的map,map中的value是list -->
<c:if test="${not empty aritcleList}">
<c:forEach items="${aritcleList}" var="temp"> <!—-遍歷list對象aritcleList,變量temp中是一個個的map-->
<c:forEach items="${temp}" var="map"> <!--${temp}獲取當前map的值,並把值保存到map變量中-->
<div class="sx_title"><a href="#" class="fright mr15">更多</a>${map.key}</div> <!—key為課程名-->
<c:if test="${not empty map.value}"> <!—這里的map.value此時為list集合,保存着多條問題的list-->
<c:forEach items="${map.value}" var="smart" varStatus="status">
<ul class="sx_list_ul">
<li><a href="${pageContext.request.contextPath}/article/getQuestionAnswers.do?id=${smart['ID']}&columnID=${columnID }">${smart["questiontile"]}</a></li>
</ul>
</c:forEach>
</c:if>
</c:forEach>
</c:forEach>
</c:if>