1、JSTL概述

之前在《[03-01] JSP自定义标签》中已经说明了自定义标签的概况,而JSTL也是一套标签库,不过是厂商已经定义好的标签库,我们不再需要自行进行定制,直接使用即可。

所以说JSTL的使用也和我们使用自定义标签是相同的:
  • 它也由两部分组成,tld文件和标签处理器类
  • 导入tld也要使用JSP的taglib指令

JSTL需要单独下载jar包,毕竟是别人写好了的,jstl1.1往往需要jstl.jar和standard.jar两个jar包(若导入jar包无法仍无法使用,尝试将tld文件复制到WEB-INF目录下)。

 
这里以JSTL的常用版本1.1来示例说明,如下可以看到,共有五个方面的tld文件:
  • c.tld  核心标记库,最常用的标记如循环、分支、表达式赋值等
  • fmt.tld  格式化/国际化标记库,用来解析数据,如日期等
  • sql.tld  数据库标记库,包含访问数据库的标记等
  • x.tld  xml标记库,用来访问xml元素
  • fn.tld  函数标记库,包含一些常用函数可以直接调用,如截取字符串等

JSTL往往和EL表达式结合使用,在JSTL标签中,属性往往通过EL进行赋值。

2、c.tld部分标签说明

  • 表达式控制标签:out、set、remove、catch
  • 流程控制标签:if、choose、when、otherwise
  • 循环标签:forEach、forTokens
  • url操作标签:import、url、redirect
 

2.1 表达式控制

<c:out value="字符串" />  
1
 
1
<c:out value="字符串" />  
输出value的值,往往可以直接使用EL替代该标记。

<c:set var="loggedIn" scope="session" value="${true}" />
1
 
1
<c:set var="loggedIn" scope="session" value="${true}" />
将value的值存储到scope范围中名var的属性中去,scope默认范围为page。

<c:remove var="loggedIn" scope="session" />
1
 
1
<c:remove var="loggedIn" scope="session" />
将var的值,从scope范围中去除。

<c:catch var="e"><%= 100/0 %></c:catch>
1
 
1
<c:catch var="e"><%= 100/0 %></c:catch>
捕获异常,异常对象使用var封装。

2.2 流程控制

<c:if test="${user.login}">Welcome</c:if>
1
 
1
<c:if test="${user.login}">Welcome</c:if>
若test的值为true,则运行<c:if></c:if>之间的代码。

<c:choose>
<c:when test="${13>4}">
hello!
</c:when>
<c:when test="${4<5}">
hi!
</c:when>
<c:otherwise>
how are u?
</c:otherwise>
</c:choose>
11
 
1
<c:choose>
2
    <c:when test="${13>4}">
3
        hello!
4
    </c:when>
5
    <c:when test="${4<5}">
6
        hi!
7
    </c:when>
8
    <c:otherwise>
9
        how are u?
10
    </c:otherwise>
11
</c:choose>
实现if/else的流程逻辑,注意,多个when在choose中类似if else,而不是单独的if。

2.3 循环标签

<c:forEach item="${allCustomers}" var="cust">
${cust}
</c:forEach>
3
 
1
<c:forEach item="${allCustomers}" var="cust">
2
    ${cust}
3
</c:forEach>
迭代集合allCustomers,每次迭代出来的元素将存储到pageContext中,名为cust。

<c:forTokens items="a:b:c:d" delims=":" var="token">
${token}
</c:forTokens>
3
 
1
<c:forTokens items="a:b:c:d" delims=":" var="token">
2
    ${token}
3
</c:forTokens>
items属性指定需要迭代的字符串,delims表示分隔符,var表示使用分隔符分割items所产生的字符串。

2.4 url操作标签

<c:import url="http://www.demo.com/test.txt" />
1
 
1
<c:import url="http://www.demo.com/test.txt" />
用来包含一些文本信息,<jsp:include>只能包含同一个Web应用中的文件,而<c:import>则可以包含其他Web应用甚至网络上的资源。

<c:redirect>
<c:redirect url="index.jsp" />
<c:param name="login" value="true" />
</c:redirect>
4
 
1
<c:redirect>
2
    <c:redirect url="index.jsp" />
3
    <c:param name="login" value="true" />
4
</c:redirect>
进行响应重定向。

<a href=<c:url value="admin/admin.jsp" />>访问admin.jsp页面</a>
 
1
<a href=<c:url value="admin/admin.jsp" />>访问admin.jsp页面</a>
输出url地址,默认使用url重写。


[06] JSTL标准标签库的更多相关文章

  1. Java Web之JSTL标准标签库总结

    [文档整理系列] Java Web之JSTL标准标签库总结

  2. EL表达式和JSTL标准标签库

    一.EL表达式 什么是EL表达式 EL(Express Lanuage)表达式可以嵌入在jsp页面内部 减少jsp脚本的编写 EL出现的目的是要替代jsp页面中脚本的编写. EL表达式的作用 EL最主 ...

  3. EL表达式 与 JSTL标准标签库

    目录 EL表达式 什么是EL表达式 作用 EL内置11对象 EL执行表达式 JSTL 什么是JSTL JSTL标准标签库有5个子库 把JSTL标签库jar包引入工程当中 if标签 foreach标签 ...

  4. java_web学习(五) JSTL标准标签库

    1.什么是JSTL JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. ...

  5. JSTL 标准标签库 (JavaServer Pages Standard Tag library, JSTL)

    JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制标签库的集合,用来解决 像遍历Map或集合.条件测试.XML处理,甚至数据 库访问和数 ...

  6. jstl标准标签库 常用标签

    JSTL(JSP Standard Tag Library)标准标签库: 1, 核心标签(最常用, 最重要的) 表达式控制标签 out 输出常量 value---直接赋值 输出变量 default-- ...

  7. Javaweb--- EL表达式 JSTL标准标签库

    一.EL表达式(expression language): 语法  ${...} jsp中page指令有一个属性叫isELIgnored, 用来标记此页面是否忽略EL表达式, 默认为false 举个例 ...

  8. JSTL标准标签库具体解释

    JSTL标签库的使用是为类弥补html表的不足.规范自己定义标签的使用而诞生的. 在告别modle1模式开发应用程序后.人们開始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同一时候也 ...

  9. JSTL标准标签库

    有时使用EL和标准动作达不到目的,于是就引入定制标记. 对于JSP页面创作人员来说,定制标记使用起来比脚本要容易一些.不过对于JAVA程序员来说,简历定制标记处理器反而更困难.幸运的是,已经有了一个标 ...

随机推荐

  1. 运行gulp项目报错:AssertionError: Task function must be specified。

    一.问题描述: gulp项目在本地windows 10机器上跑没有任何问题,但是放在centos 7虚拟机上跑报错:AssertionError: Task function must be spec ...

  2. Salesforce的基础用户界面定制

    Salesforce的用户界面 Salesforce的用户界面易于定制.本文将讲述如何定制: 主菜单和选项卡 自定义按钮和链接 视图列表 页面布局 定制主菜单和选项卡 Salesforce的主菜单默认 ...

  3. LyX使用中的一些问题

    编译开始产生的检查错误 试用LyX2.3,在2.15中能编译通过的文档,竟然提示错误 The user preamble of your document contains glyphs that a ...

  4. 【js基础】创建对象的几种常见模式(工厂模式,构造函数模式,原型模式,构造原型组合模式)

    一.工厂模式 缺点:没有解决对象识别的问题 优点:解决了创建多个相似对象的问题 function createPerson(name,age,job){ var o = new Object(); o ...

  5. [20171124]bbed的使用问题2.txt

    [20171124]bbed的使用问题2.txt --//bbed 是探究oracle数据块的好工具,有时候不用转储,直接可以它看oracle内部块的内部结构.--//在使用中要注意一些问题,昨天又犯 ...

  6. JavaWeb后台购物车类的具体实现

    相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车: 就像我们平时去超市买东西一样,会推着购物车去买东西: 那么我们接下来看看jav ...

  7. VRS待解决的问题——原因及解决方案

    1.持续滤波失败(查看文档) 通过查看文档及代码 2.GAL卫星数为0的网元及原因 3.判断发的是否是单个基站(网元未固定),多个用户进行测试 4.网元固定率(采用文件输出) 5.是否频繁重复初始化 ...

  8. SpringMVC 使用JSR-303进行校验 @Valid

    注意:1 public String save(@ModelAttribute("house") @Valid House entity, BindingResult result ...

  9. GUI概述与Frame演示

    java 图形化界面的对象存在这两个包中: java.awt :Abstract WindowsToolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属重量级控件 javax.swing:在a ...

  10. Graphviz安装及简单使用

    Graphviz Windows环境安装: 1.官网下载 官网下载地址 2.配置环境变量 将graphviz安装目录下的bin文件夹添加到Path环境变量中: 3.验证是否安装并配置成功 进入wind ...