首先导入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out>标签
<%
request.setAttribute("abc","用jstl输出request里的内容3!");
session.setAttribute("abc", "用jstl输出session里的内容2!");
application.setAttribute("abc", "用jstl输出application里的内容1!");
pageContext.setAttribute("abc", "用jstl输出pageContext里的内容4!<a href='http://www.baidu.com'>百度</a>");
%>
<%
UserBean u=new UserBean();
u.setName("小明");
u.setAge(30);
request.setAttribute("user1", u);
%>
<body>
<c:out value="hello,world"></c:out><br/><!-- 等同于out.println("hello,world"); -->
<c:out value="${abc}" escapeXml="false" ></c:out><br/><!-- 优先级application<session<request<pageContext -->
<!-- escapeXml 用于指定是否按照html样式显示,默认true[表示文本]false[html形式] -->
<c:out value="${abc3}" default="没有值"></c:out><!-- 找不到abc3时显示defautl值 -->
<h1>如何输出对象的指</h1>
<c:out value="${user1.name}"></c:out>||<c:out value="${user1.age}"></c:out>
<%=((UserBean)request.getAttribute("user1")).getName()%>
</body>
<c:set>标签
<body>
<c:set var="abc" value="中国,北京" scope="request" ></c:set> <!--等同于request.setAttribute("abc","中国,北京") -->
<c:out value="${abc}"></c:out>
</body>
<c:remove>标签
<body>
<c:set var="abc" value="删除变量" scope="request"></c:set>
<c:out value="${abc}"></c:out>
<h1>remove</h1>
<c:remove var="abc" scope="request"/><!-- 删除变量abc -->
<c:out value="${abc}" default="没有了"></c:out>
</body>
<c:catch>标签
<body>
<c:catch var="myexception">
<%int i=8/0; %>
</c:catch>
<c:out value="${myexception}"></c:out><br/><!-- 捕获异常信息 -->
<c:out value="${myexception.message}"></c:out>
</body>
<c:if>标签
<%
request.setAttribute("a", "hello");
request.setAttribute("age", "56");
%>
<%
//放入一个Rat对象
Rat rat=new Rat();
rat.setName("小宝");
rat.setAge(6);
request.setAttribute("rat1", rat);
%>
<body>
<h1>判断字符串</h1>
<c:if test="${a=='hello'}"><!-- 判断a值是否等于hello -->
ok!
</c:if>
<c:if test="${a!='hello'}">
on ok!
</c:if>
<h1>判断数值</h1>
<c:if test="${age==56}"><!-- age会自动换成整数值再进行判断 -->
等于56
</c:if>
<c:if test="${age<56}" >
小于56
</c:if><br/>
<c:if test="${age<60 and age>30}">
age<60 and age>30
</c:if>
<h1>判断对象的属性</h1>
<c:if test="${rat1.age>3}"><!-- 这里调用了getAge()方法 -->
rat年龄大于3岁!
</c:if>
</body>
<c:choose>标签
<body>
<%
Rat rat=new Rat();
rat.setName("小宝");
rat.setAge(6);
request.setAttribute("rat1", rat);
%>
<c:choose>
<c:when test="${rat1.age<=2}">
age<=2
</c:when>
<c:when test="${rat1.age>2 and rat1.age<8}">
2< age<8
</c:when>
<c:otherwise>
age>=8
</c:otherwise>
</c:choose>
</body>
<c:foreach>标签
<%
ArrayList<Rat> al=new ArrayList<Rat>();
Rat rat1=new Rat();
rat1.setName("小宝");
rat1.setAge(2);
Rat rat2=new Rat();
rat2.setName("大宝");
rat2.setAge(4);
Rat rat3=new Rat();
rat3.setName("老宝");
rat3.setAge(8);
//放入到al
al.add(rat1);
al.add(rat2);
al.add(rat3);
request.setAttribute("allrats", al);
%>
<body>
<h1>java代码取法</h1>
<%
ArrayList <Rat>al2=(ArrayList<Rat>)request.getAttribute("allrats");
for(Rat rat:al2){
out.println(rat.getName()+" "+rat.getAge());
}
%>
<h1>foreach取法</h1>
<c:forEach items="${allrats}" var="rat3">
<c:out value="${rat3.name}"></c:out>
<c:out value="${rat3.age}"></c:out>
</c:forEach>
</body>
<body>
<h4>第二种迭代:1 to 10</h4>
<c:forEach var="i" begin="1" end="10">
<c:out value="${i}"></c:out>-->
</c:forEach>
<h4>第二种迭代:1 to 10,step=2</h4>
<c:forEach var="i" begin="1" end="10" step="2">
<c:out value="${i}"></c:out>-->
</c:forEach>
</center>
</body>
<body>
<%
//模拟
Map map=new HashMap();
map.put("db","大宝");
map.put("xb","小宝");
//把map放入某个域对象session request pageContext application
request.setAttribute("person", map);
%>
<h1>对map的迭代</h1>
<c:forEach items="${person}" var="per"><!-- map 是键值对,要把键和值都取出来 -->
key=<c:out value="${per.key}"></c:out>
值=<c:out value="${per.value}"></c:out>
</c:forEach>
</body>
<body>
<h1>在map对象的迭代</h1>
<%
Map map=new HashMap();
Rat rat1=new Rat();
rat1.setName("小宝");
rat1.setAge(2);
Rat rat2=new Rat();
rat2.setName("大宝");
rat2.setAge(4);
map.put("xb",rat1);
map.put("db",rat2);
request.setAttribute("rats", map);
%>
<c:forEach items="${rats}" var="rat">
key=<c:out value="${rat.key}"></c:out><br/>
value=<c:out value="${rat.value}"></c:out><br/>
name=<c:out value="${rat.value.name}"></c:out><br/>
age=<c:out value="${rat.value.age}"></c:out><br/>
</c:forEach>
</body>
<body>
<h1>set集合jstl取法</h1>
<%
Set set=new HashSet();
Rat rat1=new Rat();
rat1.setName("小宝");
rat1.setAge(2);
Rat rat2=new Rat();
rat2.setName("大宝");
rat2.setAge(4);
set.add(rat1);
set.add(rat2);
request.setAttribute("rats",set);
%>
<c:forEach items="${rats}" var="rat">
name=<c:out value="${rat.name}"></c:out>
age=<c:out value="${rat.age}"></c:out><br/>
</c:forEach>
<h1>如何使用jstl去判断集合是否为空</h1>
<c:if test="${empty rats}">
没有rats
</c:if>
<c:if test="${!empty rats}">
有rats
</c:if>
</body>
<c:fortokens>标签
<%
request.setAttribute("abc", "12;56;你好;ddd;aaaa;hhhh");
%>
<body>
<h1>fortokens</h1>
<c:forTokens items="${abc}" delims=";" var="temp">
<c:out value="${temp}"></c:out>
</c:forTokens><!-- 分割值放在临时变量temp -->
</body>
<c:redirect>标签
<body>
<h1>redirect标签</h1>
<c:redirect url="http://www.baidu.com"></c:redirect>
</body>
<c:import><c:param>标签
<c:import url="a.jsp">
<c:param name="name" value="shunping"></c:param><!--为a.jsp传递指定参数name="shunping" a.jsp中可用${param.name}获取这个值-->
</c:import><!-- 把a.jsp内容引进来 -->
<a href="a.jsp?id=123456">点击跳转到a.jsp</a><br/><!--在a.jsp中用${param.id}接受id,此el表达式相当于request.getParameter("id")-->
<其他>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="arrayvalue" value="0,1,10,15,20" />
<c:set var="delim" value=","/>
<c:set var="array" value="${fn:split(arrayvalue, delim)}"/>
<table border="1" align="center">
<tr><td>A</td><td>B</td></tr>
<c:forEach var="i" begin="0" end="5">
<tr>
<td><c:out value="${i}"/></td>
<td>
<c:out value="${array[i]}"/>
</tr>
</c:forEach>
</table>
jstl foreach同时遍历两个list
<c:forEach items="${medicines }" var="m" varStatus="loop">
<input type="hidden" name="mdicines" value="${m}"/>
<tr bgcolor="#EFF3F7" class="TableBody1" οnmοuseοver="this.bgColor = '#DEE7FF';" οnmοuseοut="this.bgColor='#EFF3F7';">
<td align="center" vAlign="middle">${m.name }</td>
<td align="center" vAlign="middle">${m.price }</td>
<td align="center" vAlign="middle">${counts[loop.count-1]}</td>
<td align="center" vAlign="middle">${m.price*counts[loop.count-1]}</td>
</c:forEach>
</c:if>
在一个table中同时显示两个list的内容,这里的medicines 和counts是从后台传递过来的list集合,以为有一个字段是两个集合中某个属性的乘积${m.price*counts[loop.count-1]}