核心提示:1.为什么要使用JSP标签(JSTL):方便标签复用在展示后端数据时,如,HashMap、List 数据集等,方便操作。2.JSTL的环境搭建:JSTL 标签和 Servlet 及 JSP 页面有着严...
1.为什么要使用JSP标签(JSTL):
方便标签复用
在展示后端数据时,如,HashMap、List 数据集等,方便操作。
2.JSTL的环境搭建:
JSTL 标签和 Servlet 及 JSP 页面有着严格的版本对应关系,且版本不对应很容易抛出异常。
建议组合:Tomcat7.0 + JSTL1.1.2
3.JSTL 核心标签及 EL 表达式的使用:
第一个JSTL 程序:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 导入 jstl 标签库 --> <%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 使用标签输出常量或者变量 --> <c:out value="JSTL 学习第一步!"></c:out> </body> </html>
JSTL 标签的四大分类:
核心标签(重点)
格式化标签
SQL 标签
XML 标签
JSTL 函数(很常用):
EL 表达式:
什么是EL表达式:Expression Language,经常与JSTL 配合使用,使得 JSP 页面更直观,写法更简单。
例子:
<%=session.getValue(“name”) %>
- EL 表达式的格式:用"$"定界,内容包括在花括号”{}“中。 `${}` - "." 与 "[]" 运算符:通常情况下是通用的。比如, `${user.sex}` `${user["sex"]}` - "[]"还可以用来进行集合元素中的定位:`${booklist[0].price}` - 一下两种情况,两者不通用: 1. 包含特殊字符: `${user.first-name} //错误写法` `${user["first-name"]} //正确写法` 2. 通过变量动态获取值:`${user[param]}` ,param可以是name或sex等;但是"."的写法是`${user.name}` `${user.sex}` 等等。 - EL 变量: | JSP内置对象 | EL名称 | | ------------| |Page|PageScope| |Request|RequestScope |Session|SessionScope |Application|ApplicationScope 注释:在EL使用与JSP内置对象同样能的EL 变量,如上表中的对应关系。 - EL 自动类型转换: 普通写法: `String count = request.getParameter("count"); int count = Integer.parseInt(count); count = count + 2;` EL写法: `${param.count + 20}` - EL隐式对象:除了上表四种常用的之外,还有其他对象。 |序号|隐式对象|意义 |----- |1|pageContext|PageContext 实例对应于当前页面的处理 |2|pageScope|与页面作用域属性的名称和值相关联的Map类 ||requestScope|与请求作用域属性的名称和值相关联的Map类 ||sessionScope|与会话作用域属性的名称和值相关联的Map类 ||applicationScope|与应用程序作用域属性的名称和值相关联的Map类 ||param|按名称存储请求参数的主要值的Map类 ||paramValues|将请求参数的所有值作为String数组存储的 Map 类 ||Header|按名称存储请求头主要值的 Map 类 ||headerValues|将请求头的所有值作为 String 数组存储的 Map 类 ||cookie|按名称存储请求附带的 cookie 的 Map 类 |11|initParam|按名称存储 Web 应用程序上下文初始化参数的 Map 类 - EL 运算符: 运算符允许对数据和文字进行组合及比较。如下表, |类别|运算符 |-- |算术运算符|+、-、*、/、%(mod) |关系运算符|==、!=、<、>、<=、>= |逻辑运算符|&&、||、! |验证运算符|empty 验证运算符(empty):对于验证数据特别有用。可以将empty和表达式配合使用,通过判断结果值(true or false)来判断表达式是否为NULL。如下例子: `String userName = ""; request.setAttribute("userName", userName); <c:out value="${empty userName}"></c:out> ` - JSTL核心标签: - out标签用法,见例子: ``` <!-- 使用标签输出常量或者变量 --> <c:out value="JSTL 学习第一步!"></c:out> <!-- 输出变量 --> <% String userName = "xiaoyu"; %> <c:out value="${userName}"></c:out><br> <!-- 输出变量时,当变量不存在时,通过 default 属性输出默认值 --> <c:out value="${userName1}" default="error"></c:out><br> <!-- 使用转义字符 --> <c:out value="<out标签>" escapeXml="false"></c:out>
set标签:
循环控制标签: