Jsp页面中通过jstl遍历 java代码中通过request.setAttribute("newslist", list);传过来的list对象,此时的list对象中包含的是一个个的map,每个map中的value又是一个list集合


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;    

jdbcTemplatespring的东西,这里的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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM