您的位置:首页 > 编程语言 > Java开发

JavaWeb系列之十(jstl)

2015-06-20 11:56 387 查看

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.案例的使用

注册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: