问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是jsp标准标记库,提供一些范例用法?jstl标记的类型是什么

发布网友 发布时间:2022-04-09 01:21

我来回答

2个回答

懂视网 时间:2022-04-09 05:42

    Pass by xkk ,and author is not clear

 

1. JSTL简介

  JSTL全名JspServer Pages Standdard Tag Library(Jsp标准标签库),它是sun公司发布的一个针对JSP开发的新组件,它允许使用标签开发Jsp页面.

   JSTL是一个标准的已制定好的标签库,它可以应用到很多领域. 如:基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。

  JSTL所提供的标签库主要分为五大类:

JSTL

前置名称

URI

范例

核心标签库

c

http://java.sun.com/jsp/jstl/core

<c:out>

I18N格式标签库

fmt

http://java.sun.com/jsp/jstl/fmt

<fmt:formatDate>

SQL标签库

sql

http://java.sun.com/jsp/jstl/sql

<sql:query>

XML标签库

Xml

http://java.sun.com/jsp/jstl/xml

<x:forEach>

函数标签库

fn

http://java.sun.com/jsp/jstl/functions

<fn:split>

 

2.核心标签库

 

功能分类

标签名称

表达式操作

out、set、remove、catch

流程控制

if、choose、when、otherwise

迭代操作

forEach、forTokens

URL操作

import、param、url、redirect

       2.1<c:out>

         功能: <c:out>主要用来显示数据的内容

           属性列表:

名称

说明

必须

默认值

value

需要显示出来的值

default

如果value的值为null,则显示default的值

escapeXml

是否转换特殊字符,如:<转换成<

true

 

       实例:使用核心标签库,并输出数据

       步骤一:将标签库中所有的.jar包(内部是所有的标签处理器)放到/WEB_INF/lib下,将所有的.tld(内部是所有的标签库描述)放到/WEB-INF/tlds下

步骤二:在Jsp页面中引用核心标签(c_out.jsp)

<%@ page contentType="text/html;charset=gbk" language="java"%>

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

 

<%--default的两种使用方式--%>

<%--如果在uri中输入参数name=jgl,则显示输入的value中的值,否则显示默认信息(default)--%>

<c:out value="${param.name}" default="welecome jgl to my website!"/>

<c:out value="${param.name}">welecome jgl to my website!</c:out>

 

<%--value属性是必添的,escapeXml属性是true时,不解析特殊字符,false时,解析特殊字符--%>

<c:out value="${param.name}" ecapeXml="false"><c:out></c:out>

2.2<c:set>

功能: <c:set>主要用来将变量存储至JSP范围中 或是JavaBean的属性或Map对象中。

属性列表:

 

名称

说明

必须

默认值

value

要被存储的值

var

欲存入的变量名称

scope

var变量的JSP范围

page

target

JavaBean或Map对象

property

指定target对象的属性

      

 实例1:将变量设置到Jsp范围内,并输出

<%--将变量定义在Jsp范围内--%>

<%--value属性的两钟使用方式--%>

<c:set var="username" value="jack" scope="session"/>

<c:set var="pwd" scope="session">000</c:set>

<%--通过el表达式语言输出--%>

${sessionScope.username}

${sessionScope.pwd}

<%--通过jstl中<c:out>标签输出--%>

<c:out value="${sessionScope.username}"/>

实例2:将变量设置到javaBean对象内,并输出

<jsp:useBean id="stu" class="net.pcedu.student"/>

<%--通过<c:set>标签给javaBean对象的age属性设值--%>

<c:set value="16" target="${stu}" property="age"/>

<%--输出javaBean对象的属性值--%>

年龄:<c:out value="${stu.age}"/>

2.3<c:remove>

功能:主要负责移除变量

属性列表:

名称

说明

必须

默认值

var

欲移出的变量名称

scope

Var变量的JSP范围

page

 

如:

<c:remove var="username" scope="session"/>

${sessionScope.username}—输不出结果

2.4<c:catch>

功能:主要用于捕获异常

属性列表:

名称

说明

必须

默认值

var

用来储存错误信息的变量

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%--捕获异常,并将异常信息存储在var变量中--%>

<c:catch var="myexp">

<%

int i=0;

int j=3/0;

%>

</c:catch>

<h1>异常</h1>

<hr>

<c:out value="${myexp}"></c:out><%--输出异常--%>

<hr>

<h1>异常信息</h1>

<c:out value="${myexp.message}"/><%--获取异常信息--%>

<hr>

<h1>引起原因</h1>

<c:out value="${myexp.cause}"/><%--获取引起异常的原因--%>

2.5<c:if>

功能:主要用于进行if判断,如果为true,则输出标签体中的内容

名称

说明

必须

默认值

test

如果表达式的结果为true,则执行体内容,false则相反

var

用来存储test运算的结果(true或false)

scope

Var变量的JSP范围

page

实例:利用<c:set>标签设置javaBean的属性age,在jsp页面中获取age,如果age<18,输出相应信息

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%--jsp页面默认是true,EL表达式被忽略--%>

<%@ page isELIgnored="false"%>

<%--定义一个javaBean对象--%>

<jsp:useBean id="stu" class="net.pcedu.student"/>

<%--通过<c:set>标签给javaBean对象的age属性设值--%>

<c:set value="16" target="${stu}" property="age"/>

<%--输出javaBean对象的属性值--%>

年龄:<c:out value="${stu.age}"/>

<%--当if判断为true时,输出标签体的内容--%>

<c:if test="${stu.age<18}" var="young" scope="session">对不起,未成年,不能访问这个网站...</c:if>

<%--输出if语句的判断结果--%>

判断结果:<c:out value="${sessionScope.young}"/>

2.6<c:choose>,<c:when>,<c:otherwise>

<c:when>中属性列表:

名称

说明

必须

默认值

test

如果表达式的结果为true,则执行本体内容,false则相反

实例:从javaBean中获取color属性,并根据不同的属性值显示不同的颜色

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%@ page isELIgnored="false"%>

<%--定义一个Color对象--%>

<jsp:useBean id="c" class="net.pcedu.Color"/>

<%--为Color对象设置属性--%>

<c:set value="blue" target="${c}" property="color"/>

<%--获取Color对象的属性值,并根据不同的属性值显示不同的颜色--%>

<c:out value="${c.color}"></c:out>

<c:choose>

    <c:when test="${c.color eq ‘red‘}">

       <font color=red face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/></font>

    </c:when>

    <c:when test="${c.color eq ‘blue‘}">

       <font color=blue face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/></font>

    </c:when>

    <c:otherwise>

       <font color=green face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/>

    </c:otherwise>

</c:choose>

2.7<c:forEach>

功能: <c:forEach>为循环控制,它可以将数组,集合(Collection)中的成员循序浏览一遍。

属性列表:

 

名称

说明

必须

默认值

var

用来存放现在指定的成员

items

被迭代的集合对象

varStatus

用来存放现在指的相关成员信息

begin

开始的位置

0

end

结束的位置

最后一个成员

step

每次迭代的间隔数

1

实例:

<%@ page contentType="text/html;charset=gbk"%>

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

<%@ page import="java.util.*,net.pcedu.core.UserInfo" %>

<%--将javabean对象存放到集合中--%>

<%

List users=new ArrayList();

for(int i=0;i<5;i++)

{

UserInfo u=new UserInfo();

u.setName("jack-"+i);

u.setPwd("00"+i);

users.add(u);

session.setAttribute("users",users);

}

%>

<%--注意:EL中只可通过11个隐含对象来输出表达式中的内容(因此直接将List对象添加到EL表达式中不可用)--%>

<%--通过<c:forEach>迭代出集合中的信息>--%>

<h1>用户信息</h1>

<table>

  <tr>

    <th>用户名</th>

    <th>密码</th>

    <th>当前行的索引</th>

    <th>已遍历的行数</th>

    <th>是否第一行</th>

    <th>是否最后一行</th>

  </tr>

  <c:forEach var="user" items="${users}" varStatus="status"><%--加上begin="1" end="3" step="1"属性,将只显示前三条记录--%>

  <tr>

    <td><c:out value="${user.name}"/></td>

    <td><c:out value="${user.pwd}"/></td>

    <td><c:out value="${status.index}"/></td><%--输出当前行的索引号--%>

    <td><c:out value="${status.count}"/></td><%--输出已遍历的行数--%>

    <td><c:out value="${status.first}"/></td><%--输出当前行是否是第一行--%>

    <td><c:out value="${status.last}"/></td><%--输出当前行是否是最后一行--%>

  </tr>

  </c:forEach>

</table>

 

<%--通过<c:forEach>输出从1到10的数据--%>

<c:forEach var="num" begin="1" end="10" step="2">

<c:out value="->${num}"></c:out>

</c:forEach>

 

<%--通过<c:forEach>遍历数组,枚举,集合等--%>

<%

int[]intarr=new int[]{10,20,30,40,50};

String[]strarr=new String[]{"I","am","a","handsome","boy"};

Vector v=new Vector();

v.add("This");

v.add("is");

v.add("a");

v.add("Enumeration");

v.add("example");

Enumeration e=v.elements();

HashMap h=new HashMap();

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);

%>

<br>

<h1>--遍历整形数组--</h1>

<%--遍历整形数组--%>

<c:forEach var="i" items="${intarr}">

<c:out value="${i}"></c:out>

</c:forEach>

 

<br>

<h1>--遍历字符串数组--</h1>

<%--遍历字符串数组--%>

<c:forEach var="s" items="${strarr}">

<c:out value="${s}"></c:out>

</c:forEach>

 

<br>

<h1>--遍历枚举--</h1>

<%--遍历枚举--%>

<c:forEach var="ee" items="${e}">

<c:out value="${ee}"></c:out>

</c:forEach>

 

<br>

<h1>--遍历HashMap--</h1>

<%--遍历HashMap--%>

<c:forEach var="hh" items="${h}">

<c:out value="${hh.key}"/>=<c:out value="${hh.value}"/>

</c:forEach>

 

2.8<c:forTokens>

功能:将字符串以指定的一个或多个字符分割开来

属性列表

 

名称

说明

必须

默认值

var

用来存放现在的成员

items

被迭代的字符串

delims

定义用来分割字符串的字符

varStatus

用来存放现在指定的相关成员信息

begin

开始位置

0

end

结束位置

最后一个成员

step

每次迭代的间隔数

1

 

实例:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

 

<%--通过一个分割符将字符串划分为数组,并遍历出来--%>

<c:forTokens var="ele" items="blue,red,green|yellow|pink,black|white" delims="|">

<c:out value="${ele}"/>||

</c:forTokens>

<br>

<%--通过多个分割符将字符串划分问数组,并遍历出来--%>

<c:forTokens var="ele" items="blue,red!green|yellow;pink;black|white" delims="|;,!">

<c:out value="${ele}"/>||

</c:forTokens>

2.9<c:import>

功能: <c:import>可以把其他静态或动态文件包含至本身JSP网页。

属性列表:

名称

说明

必须

默认值

url<

热心网友 时间:2022-04-09 02:50

JSP标准标签库(JSP
Standard
Tag
Library)是Java
EE网络应用程序开发平台的组成部分。它在JSP规范的基础上,扩充了一个JSP的标签库来完成一些通用任务,比如XML数据处理、条件执行、数据库访问、循环和国际化。
jstl标记的类型是核心标记库。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的眉毛中部有几根会往上翘有什么说法吗? 儿童补铁的药哪种效果最好? 儿童补铁口服液哪个牌子好 台湾的共享单车有人用过吗,想知道他们用的哪款车坐垫用的是哪家的,和... city bike和roadbike区别 报春花怎样扦播 电脑连接上无线网络不能上qq为什么电脑连上无线网却只能登qq 能上网但是不能上qq,是什么原因? 金山网盾、金山网镖、金山毒霸、金山清理专家四个软件哪个防护好一点... 上网的时候,金山网镖、金山网盾和金山毒霸这三个程序需要都开着吗? 嵩山少林寺这样的地方会闹鬼吗 吴三桂如果不发动三藩之乱,而是老实接受削藩的话,会得以善终吗? 吴三桂造反前上交了平西大将军印,为何还能调动军队呢? 占据地利人和的吴三桂,为何最后还是惨败了? 清朝为什么平定了“三藩之乱”? 吴三桂起兵反清前期占据了半壁江山,为何后期败得如此迅速? 吴三桂反叛之后占据半壁江山,最后为什么会失败呢? 假如清朝没有康熙,清朝会灭亡吗?历史会怎样发展? 吴三桂为什么放清军入关? 攻陷清朝半壁江山的吴三桂最后怎么会一败涂地? 八旗兵武备废弛,平定吴三桂“三藩之乱”的主要力量是什么? 明明是吴三桂放清朝大军入的关,最后为什么打着反清复明的名号造反? 清朝三大汉人藩王之一,在康熙年间曾参与判乱 吴三桂造反时,大半个中国响应,为何最后还是失败? 吴三桂起兵后江南尽收,为什么没有一鼓作气打过长江,直取北京? 清军有多少巡抚和总兵在三藩之乱时,临阵倒戈? 原本可以灭亡大清,为何却最终兵败身亡呢? 入睡困难,容易惊醒!我之前一直在吃褪黑素,但是感觉有副作用! 最近睡眠质量好差,天天晚上做梦,我现在才二十三岁,我去药店卖药的人让我买了一瓶褪黑素,我能吃吗? 我今年才25岁就出现了经常性的失眠多梦,想问问年轻人失眠多梦能吃褪黑素吗? 精工手表与西铁城手表相比哪个好? 日本手表品牌介绍 精工手表有四万元左右的吗? 日系表与瑞士表哪个更好一些? 陈太丘翻译 女士收腹内裤分几个尺码是多大号码 本人27岁,女,请大家帮忙推荐一下好的塑身内衣,价位一般多少? jsp,数据库 女人为什么要穿塑身内衣啊,有什么特殊吗? 女性常穿塑身内衣有哪些危害 欧洲妇女的束腹是怎么一回事? 未婚女士是不是不能穿收腹内裤 手机的刘海屏和下巴是什么?有什么么优点或缺点呢? 什么是流海屏? vivo X21刘海屏是什么? 屏幕刘海是个什么东西,对使用有影响吗 手机的刘海屏有什么用? 苹果是不是有7款刘海屏手机? 建信融通怎么这么难贴现 为什么一加7 Pro的后盖和中框的缝隙这么大?