首先,SpringMVC是支持JSTL的,并且jstl标签的性能也是较好的。所以,我们可以用基本的JSTL表达式来显示数据,和使用其他标签库一样的道理,使用JSTL标签库,我们也要先导入JSTL标签库,也就是在jsp头文件中加入声明:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
在SpringMVC框架中使用JSTL标签库,需要jar包的支持,2个必须的jar包:jstl.jar 和 standard.jar
OK ,下面,我们就可以使用JSTL标签库了,接下来,我们将要在jsp页面中输出100条数据,这些数据时从从数据库中查询到的结果集。
1,数据被保存在Map中,在SpringMVC的controller中,是通过下面的操作,对数据进行封装的:
//定义一个Map<String, List<Map<String, Object>>>,用来封装查询结果
List<Map<String, Object>> mytest_list;
mytest_list = mysqlQueryPageDao.mysqlQueryPage_1_0();
//把查询结果封装到org.springframework.ui.ModelMap中
model.addAttribute("mytest",mytest_list);
2,在controller中,我们使用的是ModelAndView来传递数据的:
//返回viewName和查询结果集model
return new ModelAndView("/MySQLQueryPageSuccess.jsp",model);
3,在jsp页面,用jstl的<c:forEach>标签来遍历Map中的数据
先来看一下<c:forEach>标签的语法:
语法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>
该标签有6个属性,我们常用的是var和items,var是我们自定义的名字,items是我们要遍历的Map中的key。
接下来,我们来显示从数据库中查询的100条数据:
<tr>
<td>MySQL查询分页技术</td>
<td>查询结果在JSP页面分页展示</td>
<td>SpringMVC3.0+MySQL数据库5.5</td>
</tr>
<c:forEach items="${mytest}" var="item">
<tr>
<td>${item.myid}</td>
<td>${item.mydata}</td>
<td>${item.myname}</td>
<td>操作</td>
</tr>
</c:forEach>
这里要进行一下解读:
a,items="${mytest}",这里的mytest是我们封装时候的Map<key,value>中的key,也就是model.addAttribute("mytest",mytest_list);这里的mytest;
b,var="item",这里的item,是我们自定义的名字,是别名;
a,我的model中有3个属性,分别为myid、mydata、myname,${item.myid}这里的myid对应的是我的model实体中的属性名;
这个标签是最常用的一个标签,在实际应用中,我们经常要从数据库中查询数据,然后返回到前台页面,迭代输出。
好了,关于:SpringMVC如何把数据库查询结果显示到JSP页面?就说到这里,难度不大,相信大家都能解决。
接下来,我会说一下,SpringMVC分页技术,到时候还会分享。