JSTL标签库.docx
- 文档编号:8798701
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:24
- 大小:24.81KB
JSTL标签库.docx
《JSTL标签库.docx》由会员分享,可在线阅读,更多相关《JSTL标签库.docx(24页珍藏版)》请在冰点文库上搜索。
JSTL标签库
JSP标准标签库
1.JSTL简介
JSTL全名JspServerPagesStanddardTagLibrary(Jsp标准标签库),它是sun公司发布的一个针对JSP开发的新组件,它允许使用标签开发Jsp页面.
JSTL是一个标准的已制定好的标签库,它可以应用到很多领域.如:
基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。
JSTL所提供的标签库主要分为五大类:
JSTL
前置名称
URI
范例
核心标签库
c
out> I18N格式标签库 fmt formatDate> SQL标签库 sql query> XML标签库 Xml forEach> 函数标签库 fn split> 2.核心标签库 功能分类 标签名称 表达式操作 out、set、remove、catch 流程控制 if、choose、when、otherwise 迭代操作 forEach、forTokens URL操作 import、param、url、redirect 2.1 out> 功能: out>主要用来显示数据的内容 属性列表: 名称 说明 必须 默认值 value 需要显示出来的值 是 无 default 如果value的值为null,则显示default的值 否 无 escapeXml 是否转换特殊字符,如: <转换成< 否 true 实例: 使用核心标签库,并输出数据 步骤一: 将标签库中所有的.jar包(内部是所有的标签处理器)放到/WEB_INF/lib下,将所有的.tld(内部是所有的标签库描述)放到/WEB-INF/tlds下 步骤二: 在Jsp页面中引用核心标签(c_out.jsp) <%@pagecontentType="text/html;charset=gbk"language="java"%> <%@tagliburi="prefix="c"%> <%--default的两种使用方式--%> <%--如果在uri中输入参数name=jgl,则显示输入的value中的值,否则显示默认信息(default)--%> outvalue="${param.name}"default="welecomejgltomywebsite! "/> outvalue="${param.name}">welecomejgltomywebsite! out> <%--value属性是必添的,escapeXml属性是true时,不解析特殊字符,false时,解析特殊字符--%> outvalue="${param.name}"ecapeXml="false"><c: out> out> 2.2 set> 功能: set>主要用来将变量存储至JSP范围中或是JavaBean的属性或Map对象中。 属性列表: 名称 说明 必须 默认值 value 要被存储的值 否 无 var 欲存入的变量名称 否 无 scope var变量的JSP范围 否 page target JavaBean或Map对象 否 无 property 指定target对象的属性 否 无 实例1: 将变量设置到Jsp范围内,并输出 <%--将变量定义在Jsp范围内--%> <%--value属性的两钟使用方式--%> setvar="username"value="jack"scope="session"/> setvar="pwd"scope="session">000 set> <%--通过el表达式语言输出--%> ${sessionScope.username} ${sessionScope.pwd} <%--通过jstl中 out>标签输出--%> outvalue="${sessionScope.username}"/> 实例2: 将变量设置到javaBean对象内,并输出 useBeanid="stu"class="net.pcedu.student"/> <%--通过 set>标签给javaBean对象的age属性设值--%> setvalue="16"target="${stu}"property="age"/> <%--输出javaBean对象的属性值--%> 年龄: outvalue="${stu.age}"/> 2.3 remove> 功能: 主要负责移除变量 属性列表: 名称 说明 必须 默认值 var 欲移出的变量名称 是 无 scope Var变量的JSP范围 否 page 如: removevar="username"scope="session"/> ${sessionScope.username}—输不出结果 2.4 catch> 功能: 主要用于捕获异常 属性列表: 名称 说明 必须 默认值 var 用来储存错误信息的变量 否 无 <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--捕获异常,并将异常信息存储在var变量中--%> catchvar="myexp"> <% inti=0; intj=3/0; %> catch> outvalue="${myexp}"> out><%--输出异常--%> outvalue="${myexp.message}"/><%--获取异常信息--%> outvalue="${myexp.cause}"/><%--获取引起异常的原因--%> 2.5 if> 功能: 主要用于进行if判断,如果为true,则输出标签体中的内容 名称 说明 必须 默认值 test 如果表达式的结果为true,则执行体内容,false则相反 是 无 var 用来存储test运算的结果(true或false) 否 无 scope Var变量的JSP范围 否 page 实例: 利用 set>标签设置javaBean的属性age,在jsp页面中获取age,如果age<18,输出相应信息 <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--jsp页面默认是true,EL表达式被忽略--%> <%@pageisELIgnored="false"%> <%--定义一个javaBean对象--%> useBeanid="stu"class="net.pcedu.student"/> <%--通过 set>标签给javaBean对象的age属性设值--%> setvalue="16"target="${stu}"property="age"/> <%--输出javaBean对象的属性值--%> 年龄: outvalue="${stu.age}"/> <%--当if判断为true时,输出标签体的内容--%> iftest="${stu.age<18}"var="young"scope="session">对不起,未成年,不能访问这个网站... if> <%--输出if语句的判断结果--%> 判断结果: outvalue="${sessionScope.young}"/> 2.6 choose>, when>, otherwise> when>中属性列表: 名称 说明 必须 默认值 test 如果表达式的结果为true,则执行本体内容,false则相反 是 无 实例: 从javaBean中获取color属性,并根据不同的属性值显示不同的颜色 <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%@pageisELIgnored="false"%> <%--定义一个Color对象--%> useBeanid="c"class="net.pcedu.Color"/> <%--为Color对象设置属性--%> setvalue="blue"target="${c}"property="color"/> <%--获取Color对象的属性值,并根据不同的属性值显示不同的颜色--%> outvalue="${c.color}"> out> choose> whentest="${c.coloreq'red'}"> outvalue="${c.color}"/> when> whentest="${c.coloreq'blue'}"> outvalue="${c.color}"/> when> otherwise> outvalue="${c.color}"/> otherwise> choose> 2.7 forEach> 功能: forEach>为循环控制,它可以将数组,集合(Collection)中的成员循序浏览一遍。 属性列表: 名称 说明 必须 默认值 var 用来存放现在指定的成员 否 无 items 被迭代的集合对象 否 无 varStatus 用来存放现在指的相关成员信息 否 无 begin 开始的位置 否 0 end 结束的位置 否 最后一个成员 step 每次迭代的间隔数 否 1 实例: <%@pagecontentType="text/html;charset=gbk"%> <%@tagliburi="prefix="c"%> <%@pageimport="java.util.*,net.pcedu.core.UserInfo"%> <%--将javabean对象存放到集合中--%> <% Listusers=newArrayList(); for(inti=0;i<5;i++) { UserInfou=newUserInfo(); u.setName("jack-"+i); u.setPwd("00"+i); users.add(u); session.setAttribute("users",users); } %> <%--注意: EL中只可通过11个隐含对象来输出表达式中的内容(因此直接将List对象添加到EL表达式中不可用)--%> <%--通过 forEach>迭代出集合中的信息>--%> forEachvar="user"items="${users}"varStatus="status"><%--加上begin="1"end="3"step="1"属性,将只显示前三条记录--%> outvalue="${user.name}"/> outvalue="${user.pwd}"/> outvalue="${status.index}"/> outvalue="${status.count}"/> outvalue="${status.first}"/> outvalue="${status.last}"/> forEach> <%--通过 forEach>输出从1到10的数据--%> forEachvar="num"begin="1"end="10"step="2"> outvalue="->${num}"> out> forEach> <%--通过 forEach>遍历数组,枚举,集合等--%> <% int[]intarr=newint[]{10,20,30,40,50}; String[]strarr=newString[]{"I","am","a","handsome","boy"}; Vectorv=newVector(); v.add("This"); v.add("is"); v.add("a"); v.add("Enumeration"); v.add("example"); Enumeratione=v.elements(); HashMaph=newHashMap(); h.put("hello","0"); h.put("hello1","1"); h.put("hello2","2"); h.put("hello3","3"); h.put("hello4","4"); request.setAttribute("intarr",intarr); request.setAttribute("strarr",strarr); request.setAttribute("e",e); request.setAttribute("h",h); %> <%--遍历整形数组--%> forEachvar="i"items="${intarr}"> outvalue="${i}"> out> forEach> <%--遍历字符串数组--%> forEachvar="s"items="${strarr}"> outvalue="${s}"> out> forEach> <%--遍历枚举--%> forEachvar="ee"items="${e}"> outvalue="${ee}"> out> forEach> <%--遍历HashMap--%> forEachvar="hh"items="${h}"> outvalue="${hh.key}"/>= outvalue="${hh.value}"/> forEach> 2.8 forTokens> 功能: 将字符串以指定的一个或多个字符分割开来 属性列表 名称 说明 必须 默认值 var 用来存放现在的成员 否 无 items 被迭代的字符串 是 无 delims 定义用来分割字符串的字符 是 无 varStatus 用来存放现在指定的相关成员信息 否 无 begin 开始位置 否 0 end 结束位置 否 最后一个成员 step 每次迭代的间隔数 否 1 实例: <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--通过一个分割符将字符串划分为数组,并遍历出来--%> forTokensvar="ele"items="blue,red,green|yellow|pink,black|white"delims="|"> outvalue="${ele}"/>|| forTokens> <%--通过多个分割符将字符串划分问数组,并遍历出来--%> forTokensvar="ele"items="blue,red! green|yellow;pink;black|white"delims="|;,! "> outvalue="${ele}"/>|| forTokens> 2.9 import> 功能: import>可以把其他静态或动态文件包含至本身JSP网页。 属性列表: 名称 说明 必须 默认值 url 文件被包含的地址 是 无 context 相同容器下,其它web必须以“/”开头 否 无 var 储存被包含文件的内容 否 无 scope var变量的JSP范围 否 page charEncoding 被包含文件内容的编码格式 否 无 varReader 储存被包含的文件的内容 否 无 注意: import>与 include>的区别 include>只能包含和自己同一个Web应用程序下的文件;而 import>除了能包含和自己同一个Web应用程序的文件外,亦可以包含不同Web应程序或者是其它网站的文件。 实例: 包含同一个web应用程序的文件和不同webweb应用程序的文件 <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--引入绝对路径的文件--%> <%--注意: 被引入的文件将被解析为html的形式嵌入引用文件--%> importurl="http: //127.0.0.1: 8080/test/c_beimported.jsp"var="file"charEncoding="gbk"/> outvalue="${file}"> out> <%--引入相对路径的文件--%> importurl="c_beimported.jsp"var="f"/> outvalue="${f}"> out> <%--传递参数到被引入文件--%> importurl="c_beimported.jsp"var="ff"> paramname="name"value="jack"/> import> outvalue="${ff}"> out> 2.10. url> 功能: url>主要用来产生一个URL 名称 说明 必须 默认值 value 执行的URL 是 无 context 相同容器下,必须以“/”开头 否 无 var 储存被包含文件的内容 否 无 scope var变量的JSP范围 否 page 实例: 将一个url存放到一个变量中,并输出url <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--将一个url存放到一个变量中,并输出url--%> urlvar="myurl"value="c_beimported.jsp"scope="session"> paramname="name"value="jgl"/> url> outvalue="${myurl}"/> 2.11 redirect> 功能: redirect>可以将客户端的请求从一个JSP网页导向到其它文件。 属性列表: 名称 说明 必须 默认值 url 导向的目标地址 是 无 context 相同容器下,必须以“/”开头 否 无 <%@taglibprefix="c"uri="%> <%@pagecontentType="text/html;charset=gb2312"language="java"%> <%--通过 url>获得url--%> urlvalue="c_b异常
异常信息
引起原因
用户信息
用户名 密码 当前行的索引 已遍历的行数 是否第一行 是否最后一行 <%--输出当前行的索引号--%> <%--输出已遍历的行数--%> <%--输出当前行是否是第一行--%> <%--输出当前行是否是最后一行--%>--遍历整形数组--
--遍历字符串数组--
--遍历枚举--
--遍历HashMap--
引入绝对路径的文件
引入相对路径的文件
传递参数到被引入文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSTL 标签