EL表达式
EL(Expression Language)表达式语言,用于简化JSP的输出
EL表达式的基本语法: ${表达式}
示例: 学生姓名: ${student.name}
===================================
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student();
student.setName("于末");
student.setMobile("13115353");
String grade = "A";
request.setAttribute("student",student);
request.setAttribute("grade",grade);
request.getRequestDispatcher("/info.jsp").forward(request,response);
}
==================================
<h1>姓名:${requestScope.student.name }</h1>
<h1>电话:${requestScope.student.mobile }</h1>
<h2>评级:${requestScope.grade }</h2>
作用域对象
作用域对象 | 描述 |
---|
pageScope | 从当前页面取值 |
requestScope | 从当前请求中获取属性值 |
sessionScope | 从当前会话中获取属性值 |
applicationScope | 从当前应用获取全局属性值 |
- 忽略书写作用域对象时,el则按作用域从大到小依次尝试获取
<h1>姓名:${student.name }</h1>
<h1>电话:${student.mobile }</h1>
<h2>评级:${grade }</h2>
EL表达式输出
- 语法: ${[作用域.]属性名[.子属性]}
- EL表达式支持将运算结果进行输出
- EL支持绝大多数对象输出,本质是执行toString()方法
EL输出参数值
- EL表达式内置param对象来简化参数的输出
- 语法:${param.参数名}
JSTL标签库
- JSTL (JSP Standard Tag Library) ,JSP标准标签库
- JSTL用于简化JSP开发,提高代码的可读性与可维护性
- JSTL由SUN (Oracle) 定义规范,由Apache Tomcat团队实现
下载
作用域对象 | 描述 |
---|
taglibs-standard-spec-1.2.5jar | 标签库定义包(必须) |
taglibs-standard-impl-1.2.5.jar | 标签库实现包(必须) |
taglibs-standard-jstlel-1.2.5.jar | el表达式支持包(备选) |
taglibs-standard-compat-1.2.5.jar | 1.0版本兼容包(备选) |
安装
- 将Jar文件复制到工程的WEB-INF/lib目录(推荐)
- 将Jar文件复制到Tomcat安装目录的lib目录
JSTL的标签库种类
- JSTL按功能划分可分为五类标签库
- 核心标签库 - core
- 格式化输出标签库 - fmt
- SQL操作系统标签库 - sql
- XML操作标签库 - xml
- 函数标签库 - functions
引用JSPL核心库
- 核心标签库(Core)是JSTL最重要的标签库,提供了JSTL的基础功能
- < %@ taglib prefix=“c” uri= “http://java.sun.com/jsp/jstl/core” %>
- JSTL核心标签库在taglibs-standard-impl.jar由META-INF/c.tld定义
判断标签
- JSTL核心库提供了两组判断的标签
- <c:if> -单分支判断
<h1>${score }</h1>
<c:if test="${score >= 60 }">
<h1 style = "color:green">及格</h1>
</c:if>
<c:if test="${score < 60 }">
<h1 style = "color:red">不及格</h1>
</c:if>
- <c:choose>、<c:when>、 <c:otherwise> -多分支判断
<!-- choose when otherwise -->
<c:choose>
<c:when test="${grade == 'A' }">
<h2>优秀</h2>
</c:when>
<c:when test="${grade == 'B' }">
<h2>良好</h2>
</c:when>
<c:when test="${grade == 'C' }">
<h2>及格</h2>
</c:when>
<c:otherwise>
<h2>不及格</h2>
</c:otherwise>
</c:choose>
集合遍历
- <c:forEach>标签用于遍历集合(Collection) 中的每-个对象
<!-- forEach标签用于遍历集合
List companies = (List)request . getAttribute(" companies");
for(Company C : companies){
out. print("...");
}
-->
<c:forEach items = "${companies }" var = "c" varStatus = "idx">
<h2>${idx.index+1}.${c.name }-${c.url }</h2>
</c:forEach>
fmt格式化标签库
- fmt格式化标签库URI:http://java.sun.com/jsp/jstl/fmt
- < fmt:formatDate value = “” pattern = “”>格式化日期标签
<!-- formatDate pattern
yyyy - 四位年
MM - 两位月
dd - 两位日
HH - 24小时制
hh - 25小时制
mm - 分钟
ss - 秒
SSS - 毫秒
-->
<h2>${now } </h2>
<fmt:formatDate value="${now }" pattern = "yyyy年 MM月 dd日 HH:mm:ss:SSS"/>
- < fmt:formatNumber value = “” pattern = ">格式化数字标签
<h2>${amt } </h2>
<h2>¥<fmt:formatNumber value = "${amt }" pattern = "0,000.00"></fmt:formatNumber>元</h2>
======================================
<h2>null默认值:<c:out value="${nothing }" default="无"></c:out></h2>
<h2><c:out value="${html }" escapeXml="true"></c:out></h2>