标签:
1.jstl的一个简介
使用方式:jsp里面的指令taglib一起使用,替代页面<%%>JavaServerPages Standard Tag Library
使用jstl,先导入jar包
jstl的版本是1.0(版本使用于j2ee1.4时代,不能直接使用)1.1 1.2(差别不大)
jstl在jsp里面引入标签库 <%@ taglib uri="标签库的路径" prefix="" %>
找到standard.jar 下面,META-INF里面找到c.tld fn.tld
c.tld里面找到标签库,和函数库,
可以用<c:>标签库
2.jstl的标签
<c:out 属性=“属性值”>:向页面输出内容
三大属性:value(向页面输出值,也可是输出变量)
<c:out value="hahah"></c>
<c:set var="city" value="shan"><c:out value="${city}"><c:out>
default
<c:out value="${city}" default="nana"></c:out>取不到值得时候用默认值
escapeXml
<c:out value="<a href=‘we‘>bb</a>" escapeXml="false">:不进行转义,默认值是true
3.set标签
向域对象里面设置值
<c:set var="" value="" scape="page"></c:set>${pageScope.}
修改域对象厘米那的对象的属性的值
4.removw标签
移除域对象里面的标签
<c:remove var="itcast"/>
5.jstl的catch标签
捕获异常
<c:catch var="e">
<%
int b = 10/0;
%>
</c:catch>
${e.message }
6.if标签
<c:set var="w" value="200"></c:set>
<c:if test="${w==200 }">
<h2>2000</h2>
</c:if>
<c:if test="${w!=200 }">
<h2>other</h2>
</c:if>
7.选择语句
<c:choose>
<c:when test="${n==10 }">
<h1>10</h1>
</c:when>
<c:when test="${n==20 }">
<h1>10</h1>
</c:when>
</c:choose>
8.jstl的forTokens
用来分割标签 属性:items=“分割的是什么字符串”delims=“根据什么来分割”var=“分割完叫什么”
<c:forTokens items="a,b,c,d" delims="," var="mm">
${mm }
</c:forTokens>
9、jstl的forEach标签的使用(**********今天最重要的标签********)
获取域对象里面数组
<c:forEach var="a" items="${arr1 }">
<h4>${a }</h4>
</c:forEach>
相当于java里面增强for循环,items:要循环的是哪一个数组;var:每次遍历的值
获取域对象里面的集合(list 、 set 、 map)
使用jstl的foreach标签获取域对象里面list集合里面的值
<c:forEach var="l1" items="${list }">
<h3>${l1 }</h3>
</c:forEach>
使用jstl的foreach标签获取域对象里面set集合里面的值
<c:forEach var="s1" items="${set }">
${s1 }
</c:forEach>
使用jstl标签获取域对象里面的map集合里面的值
<%
Map map = new HashMap();
map.put("aa", "小师妹");
map.put("bb", "大师兄");
map.put("cc", "师父");
pageContext.setAttribute("map", map);
%>
<c:forEach var="m1" items="${map }">
<h3>${m1.key } , ${m1.value }</h3>
</c:forEach>
向域对象里面放多个对象,通过foreach标签获取到多个对象的属性的值
使用jstl的foreach标签获取域对象里面多个对象的属性的值
<%
Person p1 = new Person();
p1.setId("100");
p1.setName("小丽");
Person p2 = new Person();
p2.setId("200");
p2.setName("小红");
Person p3 = new Person();
p3.setId("300");
p3.setName("小三");
//把多个对象放到域对象里面
//首先先把这些对象放到一个集合里面,一般使用list集合,然后把集合放到域对象里面
List list = new ArrayList();
list.add(p1);
list.add(p2);
list.add(p3);
pageContext.setAttribute("list1", list);
%>
<c:forEach var="list1" items="${list1 }">
<h3>${list1.id } , ${list1.name }</h3>
</c:forEach>
10、jstl的foreach标签的其他操作(看懂)
循环从1到10
<!-- 循环从1到10 -->
<!--
for(int i=1;i<=10;i++) {}
-->
<c:forEach var="i" begin="1" end="10" step="1">
${i }
</c:forEach>
实现从1加到100
<c:forEach var="b" begin="1" end="100" step="1">
<c:set var="sum" value="${sum+b }"></c:set>
</c:forEach>
${sum }
从100到200,每次加4,遇到第3个数变成红色,其他的变成蓝色
100(蓝色) 104 108(红) 112 116 120(红)
从100到200,每次加4,遇到第3个数变成红色,其他的变成蓝色 -->
<c:forEach var="aa" begin="100" end="200" step="4" varStatus="hh">
<c:if test="${hh.count%3==0 }">
<font color="red">${aa }</font>
</c:if>
<c:if test="${hh.count%3!=0 }">
<font color="blue">${aa }</font>
</c:if>
</c:forEach>
===================================================
重点记住这些标签 set标签 if标签 choose标签 foreach标签(最重要的标签)
11.jstl的import,url,redirect,param
import:在jsp页面中引入其他的jsp页面
属性context:项目名称;url:写页面项目名称后面的内容
<c:import url="/jstl/hello.jsp" context="/day12"></c:import>
url标签:获取url地址
属性context:项目名称; url:写页面项目名称后面的内容
<c:redirect url="/jstl/hello.jsp" context="/day12"></c:redirect>
param:传递参数的使用,类似get提交,地址
redirect:重定向
12.JSTL中的常用的函数库
如果想要使用el函数,导入jar包,导入函数库
<%@ taglib uri="" prefix=""%>
13.自定义函数
${myfn:println("wedfd") }
开发步骤:
定义一个java的方法,这个方法必须是一个static的方法
第二步:创建一个函数库,也就是一个tld标签
第三步:引入类库
第四步:重启服务器
14.自定义标签
一般使用simpleTag接口完成自定义的标签
使用接口需要把接口里面的方法都实现
都使用SimpleTagSupport类实现自定义标签
doTag()
setJspContext(JspContext pc)
setJspBody(JspFragment jspBody)
setParent(JspTag parent)
方法执行过程
<mycl:printl>
开发步骤:
第一步创建一个类:
15.jsp的开发模式
两种:模型一:jsp+javabean缺点在jsp里面写大量的代码,java和html混用
模型二:也叫mvc,只负责自己的事情
m:model使用javabean
v:view使用jsp:负责显示数据
c:controller,使用技术是servlet
通过c控制什么m显示到什么v里面
16.案例的使用
注册
标签:
原文地址:http://blog.csdn.net/lois_yue/article/details/46572913