在JSP中输出HTML内容非常麻烦; 在JSP中嵌入大量的Java代码也不是一件好事。 学习了MVC架构后,/JSP终于可以尽职尽责——处理HTTP请求并访问业务逻辑代码,并使用表达式在JSP中求值和显示。 但是,对于某些场景:
根据一定的条件来确定要显示的HTML内容——导航栏根据用户是否登录显示不同的内容,循环显示一段HTML内容——博客列表
这就需要在JSP中嵌入Java代码来使页面显示出想要的结果——因为HTML本身并没有这样的标签来完成动态生成网页的任务。
幸运的是,Java EE提供了这样一个扩展标签库——JSTL,它不仅提供了常用的用于实现条件判断、循环等程序逻辑的标签,还提供了很多扩展标签,让开发者可以更方便地实现业务功能。
使用 JSTL 标签安装 JSTL 标签库
首先需要下载JSTL库,在下载地址中选择javax..jsp.jstl-1.2.1.jar。 下载后复制到项目中的WEB-INF/lib文件夹中:
这相当于将JSTL类库依赖添加到Web应用程序的类路径中,并自动添加到Web App中,这样在IDE中编写JSP文件时就可以自动检查并自动完成JSTL语法。
第一个 JSTL 程序
JSTL是一个基于JSP的扩展标签库。 在使用它之前,我们必须在JSP文件的头中引入它的定义:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这里我们只介绍JSTL中的核心标签库(Core),其中包括条件判断、循环处理、属性访问、URL处理、错误处理等标签。 Core 是 JSTL 最常用的标签库。 另外,JSTL还包括格式化标签库、SQL标签库、XML标签库、常用功能标签库等,在后面的学习中你会一一接触。
for Java 是核心标签库的 URL,例如“c”表示通过 c 前缀使用 JSTL 标签。
下面是一个使用JSTL标签库的简单JSP程序:
<%
String[] cities = {"Beijing", "Shanghai", "Guangzhou"};
pageContext.setAttribute("cities", cities);//这里是测试数据,一般来说需要在Servlet中将数据传入JSP
%>
<body>
${city}