JSTL标签库
来源:互联网 发布:淘宝店铺突然没有流量 编辑:程序博客网 时间:2024/05/25 12:21
自定义标签:
我们可以自己去定义一些jsp标签。自定义包含两个:java类,tld文件(标签的描述文件)
标签库JSTL(JSP Standard Tag Library):
因为在jsp中使用java代码去控制页面的显示(即:用小段的<%%>),可读性很差,这样后期维护会比较麻烦,所以引入了Java标签库。
n 常用的JSTL标签库:
n 核心标签库:http://java.sun.com/jsp/jstl/core包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
n 格式化标签库:http://java.sun.com/jsp/jstl/fmt用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
n XML 标签库:http://java.sun.com/jsp/jstl/xml用来访问 XML 文件的工作,这是 JSTL 标签库的一个特点。
n 函数标签库:http://java.sun.com/jsp/jstl/functions 用来读取已经定义的某个函数。
n 数据库标签库:http://java.sun.com/jsp/jstl/sql可以做访问数据库的工作。
J2EE 1.4:
使用Java标签库首先要在项目中引入jstl.jar和standard.jar两个jar包,MyEclipse中有这个功能;
Standard.jar中有tld文件(是一个xml文档),这是关于JSTL标签的说明文件,对应的java类就是加载这些说明,然后对我们写的JSTL标签进行解析处理。
JAVAEE 5.0:
javaee5.0类库已经自带了jstl相关的jar包。不需要再添加,可以直接使用jstl。
其次要在页面中加入这样一个标签头[gjw1] <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out>标签用于显示变量数据。
<c:out value="${a}" default="空"[c2] escapeXml="true" [c3] ></c:out>
<c:set>标签的常用属性(将值存储到作用域或为 JavaBean 中的变量属性赋值 ):
n <c:set var=“name“ value=“zhangsan“ scope=“page”/> (相当于:pageContext.setAttribute(“name”,”zhangsan”))
n 将值zhangsan存储到变量name, name为作用域pageContext中的一个属性。
n <c:set var=“t” ><b>hello c:set!</b></c:set>
n 将本体内容存储到变量t中。
n <c:set target="${u}" property="pwd" value="123" ></c:set>
n 设置已有的EL变量u的属性pwd的值为123
n <c:set target="${u}" property="pwd"[c4] >123456</c:set>
n 将本体内容设为EL变量u的属性pwd的值。
[c5]
<c:remove var="sampleValue" scope="session"/> 相当于:session.removeAttribute(“sampleValue”)
c:if标签à相当于java中的if语句
名称
描述
类型
默认值
test
若返回true,则执行本体内容;否则,不执行。
Boolean
无。
var[c6]
用来存储test执行后的结果
String
无
Scope
var 指定变量的存储范围
String
page
<c:if test="${empty requestScope.s[gjw7] }" var=”resultTest” >
<h1>true才显示</h1>
</c:if>
执行结果:${ resultTest }
c:choose标签à相当于java中的if-else语句
<c:choose>[gjw8]
<c:when[gjw9] test="${empty requestScope.s}">
<h1>空</h1>
</c:when>
<c:otherwise[gjw10] >
<h1>不空!</h1>
</c:otherwise>
</c:choose>
使用要点:
1. <c:when>必须在<c:otherwise>之前
2. <c:choose>中除了<c:when>/<c:otherwise>不能有其他元素。
c:forEach标签à相当于java中的遍历操作.
常用参数及其含义:
varStatus属性的使用:
<%
List list = new ArrayList();
for(int i=0;i<20;i++){
list.add("A:"+i);
}
pageContext.setAttribute("li",list);
%>
<c:forEach items="${li}"[gjw11] var="a"[gjw12] begin="5" end="13" step="3"[gjw13] varStatus="idx"[gjw14] >
<b>${a}</b>
<c:if test="${(idx.index+1)%5= =0}">
<br>
</c:if>
[gjw15] </c:forEach>
<c:import url="http://www.baidu.com"></c:import>类似于 include。但是比include范围广。Include只能加载本web应用的路径。Import可以加载本web应用以外的路径。下面是几种典型的使用:
1.引入本web应用中的资源:
<c:import url="/1.jsp" ></c:import> 此处/代表本web应用根目录
2. 引入外部URL:
<c:import url="http://www.baidu.com" ></c:import>
3. 将所引入文件的内容作为字符串存储在变量中,留待以后使用。
<c:import url="1.jsp" var="t5" scope="page"></c:import>
${t5}
请求重定向:<% response.sendRedirect(“fortoken.jsp”) %>
<c:redirect url="fortoken.jsp">地址栏改变
<c:param name="a" value="33"></c:param>
<c:param name="b" value="44"></c:param>
</c:redirect>
${param.a}
<%
String str = "Where you from?I am from China";
request.setAttribute("str",str);
%>
<c:forTokens items="${str}" delims="?| " var="str1">
<b>${str1}</b><br>
</c:forTokens>
Fn标签库的使用:[gjw16]
简介
在jsp页面上经常遇到得到集合长度、字符长度、字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一。为此在2.0 中添加了functions标签,其提供对以上需求的支持。
使用方法
引用
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
函数说明:
函数
描述
fn:contains(string, substring)
如果参数string中包含参数substring,返回true
fn:containsIgnoreCase(string, substring)
如果参数string中包含参数substring(忽略大小写),返回true
fn:endsWith(string, suffix)
如果参数 string 以参数suffix结尾,返回true
fn:escapeXml(string)
将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:indexOf(string, substring)
返回参数substring在参数string中第一次出现的位置
fn:join(array, separator)
将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:length(item)
返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
fn:replace(string, before, after)
返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:split(string, separator)
返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:startsWith(string, prefix)
如果参数string以参数prefix开头,返回true
fn:substring(string, begin, end)
返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
fn:substringAfter(string, substring)
返回参数substring在参数string中后面的那一部分字符串
fn:substringBefore(string, substring)
返回参数substring在参数string中前面的那一部分字符串
fn:toLowerCase(string)
将参数string所有的字符变为小写,并将其返回
fn:toUpperCase(string)
将参数string所有的字符变为大写,并将其返回
fn:trim(string)
去除参数string 首尾的空格,并将其返回
示例:
<c:forEach items="${li}" var="str" begin="0" end="9" step="1" varStatus="ind">
<b>${fn:substring(str,1,fn:length(str))}</b>
<c:if test="${(ind.index+1)%3==0}">
<br>
</c:if>
</c:forEach>
<c:forEach items='${fn:split("a,b,c",",")}'[gjw17] var="cc" >
${cc} <br>
</c:forEach>
扩展知识点:
JSTL的格式化标签库。(自学!!)
[gjw1]如果在浏览器中看页面的源码时,标签语句原样发了过去,就是因为没加标签头
[c2]当显示变量为null或不存在时,显示”空”
[c3]True:则将文本按照普通文件显示。
False:如果文本中存在HTML数据,则进行解析。
[c4]Target=”${u.password}”,此处这么些错误。
用target指定javabean
用property指定属性名。
[c5]基本用不着!不用看了!
[c6]可以通过他保存该<c:if>执行结果,留待日后做其他处理。
[gjw7]相当于判断表达式,返回true或false
[gjw8]注意 c:choose标签中除了when和otherwise不能加其他的语句
[gjw9]相当于if-else中的if,可以写多个
[gjw10]相当于if-else中的else
[gjw11]遍历哪个对象
[gjw12]暂存变量
[gjw13]起始位置、结束位置、步长(默认为1),都是可选的属性
[gjw14]为了取得下标的属性
[gjw15]常用的换行分页操作
[gjw16]JSTL1.1及以上中使用。
[gjw17]返回一个数组。由于里面有双引号,外面可用单引号。
JSTL中的属性可用双引号、单引号。不过,不写引号不行。
- 【JSTL】JSTL 标签库
- 【JSTL】标准标签库JSTL
- JSTL&EL JSTL标签库
- JSTL 核心标签库标签
- JSTL 核心标签库标签
- JSTL标签库,自定义标签
- JSTL标签库 fn标签
- JSTL标签库 fmt标签
- jstl库标签核心标签
- JSTL标签库:out标签
- JSTL 标签 ------ 核心标签库
- JSTL 标签库介绍
- JSTL标签库
- JSTL标准标签库
- JSTL标准标签库
- JSTL核心标签库
- jstl 函数标签库
- JSTL标签库
- 请求转发与重定向
- MES项目导入-培训篇1
- Comet:基于 HTTP 长连接的“服务器推”技术
- 1766. 火柴棒等式
- C语言编程的几点经验
- JSTL标签库
- Myget/mytget
- 这么甜的英语,你敢和谁说?
- Google 跟 Mozilla 续签三年 Firefox 默认搜索引擎合同
- sim 状态
- 黑马程序员——代理模式
- vim 命令(全)
- Oracle中的连接查询
- 网页无法另存为 通杀