spring MVC如何在JSP页面输出map中的值

时间:2022-08-28 19:16:13
SpringMVC如何在JSP页面显示数据?或者说springMVC如何在JSP页面取map值?

首先,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分页技术,到时候还会分享。