jstl与el学习笔记
EL(Expression Language,表达式语言):
Jsp2.0后不仅可以在jstl中应用而且可以直接在jsp中应用,常见写法${expression}
长于jstl标签的test属性一起构成条件判断,如:
<c:if test=${param.age>100}>
年龄大于100
</c:if>
param是el的内置对象,表请求参数
paramValues也是内置对象,表情求参数数组,使用:${paramValues[2]}等等
JSTL(JSP Standard Taglib Language,jsp标准标签库)
有5个组成部分:
core:c
format:fmt
functions:fn
xml:xml
sql:sql
使用举例:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'choose.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String[] namesStr = new String[]{"n1", "n2", "n3", "n4"};
Map<String, String> dictMap = new HashMap<String, String>();
dictMap.put("k1", "v1");
dictMap.put("k2", "v2");
pageContext.setAttribute("names", namesStr);
pageContext.setAttribute("dict", dictMap);
%>
<c:forEach var="name" items="${names}" begin="1" end="2" step="1" varStatus="i">
名称:${name},序号:${i.index },已经输出:${i.count },是否是第一个元素:${i.first },最后?:${i.last }<br/>
</c:forEach>
<br/>
<br/>
<c:forEach var="name" items="${dict}">
键:${name.key},值:${name.value }。<br/>
</c:forEach>
</body>
</html>
结果:
名称:n2,序号:1,已经输出:1,是否是第一个元素:true,最后?:false
名称:n3,序号:2,已经输出:2,是否是第一个元素:false,最后?:true
键:k1,值:v1。
键:k2,值:v2。
名称:n3,序号:2,已经输出:2,是否是第一个元素:false,最后?:true
键:k1,值:v1。
键:k2,值:v2。
浙公网安备 33010602011771号