除了可以使用EL表达式简化JSP页面代码,还有一种JSTL标签库,通常和EL表达式结合使用。
JSTL即是JavaServer Pages Standard Tag Library,JSP标准标签库。JSTL可以用标签的形式来实现循环语句、条件语句、格式化等。
前面的PersonController.java中从数据库查询出Person的记录,保存在了personList的一个List对象中。在Jsp中取出这个列表对象,用了<%=request.getAttribute("personList") %>这样的语句。如果要在Jsp页面中把列表中的每一条记录显示出来,当然可以在Jsp页面中使用Java代码来循环出结果,但是这样做就使JSP页面中有了很多Java代码。这里就介绍使用JSTL标签来实现循环。
要使用JSTL标签库,需要引入两个jar包。一个是jstl.jar,一个是standard.jar。下面给出这两个jar包的下载地址。
http://central.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.jar
http://central.maven.org/maven2/taglibs/standard/1.1.2/standard-1.1.2.jar
把这两个jar包下载下来,放到WEB-INF/lib目录中,重新启动Tomcat服务器。
在person.jsp中加入标签库的taglib引入。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
taglib有两个属性uri和prefix,uri是标签库的标记全称,比如http://java.sun.com/jsp/jstl/core,perfix是标签库的标记简称,比如c。最常用的标记库是core和format标记库,这里重点介绍这两个标记库,其他标记库如xml和sql标记库很少用到。
core标记库也有很多,比如c:forEach、c:choose、c:set、c:if是比较常用的,分别为循环标签、选择标签、设置变量标签、条件判断标签。
下面的例子来循环显示personList的记录值。
这里使用c:forEach标签,items属性为${personList},是一个EL表达式。var属性为person,即是从personList循环出来的每一个记录,定义为变量person。这样在c:forEach标签的开始标签和结束标签里面,就可以使用EL表达式取出每一个记录变量的属性值,比如${person.id }和${person.nation }。
配套进阶****:
https://edu.****.net/combo/detail/938
Java****