Taglib 伪指令

Java代码  
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

输出<c:out> 
语法:

Java代码  
  1. <c:out value="expression" default="expression" escapeXml="boolean"/>

说明: 
该标记对由其 value 属性指定的表达式进行求值,然后打印结果。如果指定了可选属性 default,那么,在对 value 属性的表达式求值所得结果为 null 或空 String 的情况下,<c:out> 将打印其值。 
escapeXml 属性也是可选的。它控制当用 <c:out> 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 &lt;、&gt; 和 &amp;)。 
例:

Java代码  
  1. <c:out value="${user.company}" escapeXml=="false"/>

赋值<c:set> 
语法:

Java代码  
  1. <c:set var="name" scope="scope" value="expression"/>

说明: 
<c:set> 操作提供基于标记的机制来创建和设置限制了作用域的变量。其中 var 属性指定了限制了作用域的变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。 
scope 属性是可选的,其缺省值是 page。 
例:

Java代码  
  1. <c:set var="timezone" scope="session" value="CST"/>
  2. <c:set var="square" value="${param['x'] * param['x']}"/>

循环 
语法:

Java代码  
  1. <c:forEach var="name" items="expression"
  2. varStatus="name" begin="expression"
  3. end="expression" step="expression">
  4. body content
  5. </c:forEach>

说明: 
begin 和 end 属性要么是静态整数值,要么是可以得出整数值的表达式。它们分别指定迭代索引的初始值以及迭代索引的终止值。当使用 <c:forEach> 在整数范围内进行迭代时,这两个属性是必需的,而其它所有属性都是可选的。 
当出现 step 时,它也必须是整数值。它指定每次迭代后索引的增量。 
如果指定了 var 属性,那么将会创建一个带有指定名称的并限定了作用域的变量,并将每次迭代的当前索引值赋给该变量。 
items 属性的值应该是一个集合,对该集合的成员进行迭代,通常使用 EL 表达式指定值。 
和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。 
例:

Java代码  
  1. <table>
  2. <c:forEach items=
  3. "${entryList}" var="blogEntry" varStatus="status">
  4. <tr><td align="left" class="blogTitle">
  5. <c:out value="${status.count}"/>.
  6. <c:out value="${blogEntry.title}" escapeXml="false"/>
  7. </td></tr>
  8. <tr><td align="left" class="blogText">
  9. <c:out value="${blogEntry.text}" escapeXml="false"/>
  10. </td></tr>
  11. </c:forEach>
  12. </table>

If判断 
语法:

Java代码  
  1. <c:if test="expression" var="name" scope="scope">
  2. body content
  3. </c:if>

说明: 
测试表达式(test属性值)进行求值,接下来,仅当对表达式求出的值为 true 时,它才处理标记的主体内容 
<c:if> 通过其 var 和 scope 属性(它们所起的作用和在 <c:set> 中所起的作用一样)选择将测试结果赋给限定了作用域的变量。 
例:

Java代码  
  1. <table>
  2. <c:forEach items=
  3. "${entryList}" var="blogEntry" varStatus="status">
  4. <c:if test="${status.first}">
  5. <tr><td align="left" class="blogDate">
  6. <c:out value="${blogEntry.created}"/>
  7. </td></tr>
  8. </c:if>
  9. <tr><td align="left" class="blogTitle">
  10. <c:out value="${blogEntry.title}" escapeXml="false"/>
  11. </td></tr>
  12. <tr><td align="left" class="blogText">
  13. <c:out value="${blogEntry.text}" escapeXml="false"/>
  14. </td></tr>
  15. </c:forEach>
  16. </table>

Choose操作语法 
语法:

Java代码  
  1. <c:choose>
  2. <c:when test="expression">
  3. body content
  4. </c:when>
  5. ...
  6. <c:otherwise>
  7. body content
  8. </c:otherwise>
  9. </c:choose>

说明: 
每个要测试的条件都由相应的 <c:when> 标记来表示,至少要有一个 <c:when> 标记。只会处理第一个其 test 值为 true 的 <c:when> 标记体内的内容。如果没有一个 <c:when> 测试返回 true ,那么会处理 <c:otherwise> 标记的主体内容。 
例:

Java代码  
  1. <c:choose>
  2. <c:when test="${pageContext.request.scheme eq 'http'}">
  3. This is an insecure Web session.
  4. </c:when>
  5. <c:when test="${pageContext.request.scheme eq 'https'}">
  6. This is a secure Web session.
  7. </c:when>
  8. <c:otherwise>
  9. You are using an unrecognized Web protocol. How did this happen?!
  10. </c:otherwise>
  11. </c:choose>

<c:url> 操作的语法 
语法:

Java代码  
  1. <c:url value="expression" context="expression" var="name" scope="scope">
  2. <c:param name="expression" value="expression"/>
  3. ...
  4. </c:url>

说明: 
<c:url> 标记,用于生成 URL。 
value 属性用来指定基本 URL,然后在必要时标记对其进行转换。如果这个基本 URL 以一个斜杠开始,那么会在它前面加上 servlet 的上下文名称。可以使用 context 属性提供显式的上下文名称。如果省略该属性,那么就使用当前 servlet 上下文的名称。这一点特别有用,因为 servlet 上下文名称是在部署期间而不是开发期间决定的。(如果这个基本 URL 不是以斜杠开始的,那么就认为它是一个相对 URL,这时就不必添加上下文名称。) 
如果通过嵌套 <c:param> 标记指定了任何请求参数,那么将会使用 HTTP GET 请求的标准表示法将它们的名称和值添加到生成的 URL 后面。此外,还进行 URL 编码:为了生成有效的 URL,将对这些参数的名称或值中出现的任何字符适当地进行转换。 
例:

Java代码  
  1. <a href="<c:url value='/content/sitemap.jsp'/>">View sitemap</a>
  2. <c:url value="/content/search.jsp">
  3. <c:param name="keyword" value="${searchTerm}"/>
  4. <c:param name="month" value="02/2003"/>
  5. </c:url>

<c:redirect> 操作的语法 
语法:

Java代码  
  1. <c:redirect url="expression" context="expression">
  2. <c:param name="expression" value="expression"/>
  3. ...
  4. </c:redirect>

说明: 
<c:redirect>用于向用户的浏览器发送 HTTP 重定向响应,它是 JSTL 中与 javax.servlet.http.HttpServletResponse 的 sendRedirect() 方法功能相当的标记。 
例:

Java代码  
  1. <c:catch var="exception">
  2. <c:import url="ftp://ftp.example.com/package/README"/>
  3. </c:catch>
  4. <c:if test="${not empty exception}">
  5. <c:redirect url="/errors/remote.jsp"/>
  6. </c:if>

转载于:https://www.cnblogs.com/chenying99/archive/2012/07/21/2602598.html

JSTL笔记—c标签相关推荐

  1. JSP中 JSTL和EL标签的使用

    使用JSTL前的准备 想要使用JSTL,首先需要给工程导入JSTL的包(JSTL.jar和standard.jar). JSTL简介 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应 ...

  2. JSTL (JSP标准标签库)

    JSTL的标签库 c标签(core标签库) fmt标签(国际化标签库) xml标签 sql标签 jstl函数库(EL函数) JSTL的使用 1.引入JSTL的jar包 2.新建jsp页面 3.在jsp ...

  3. jstl的formatNumber标签的四舍五入问题

    2019独角兽企业重金招聘Python工程师标准>>> 使用JSTL的formatNumber 标签进行四舍五入时,发现它竟然使用的是"4舍6入5奇偶"的算法. ...

  4. JSTL(c标签)与Struts2(s标签)标签

    引入jstl标签库 项目导入standard.jar ,jstl.jar包 在jsp页面加入如下句: <%@ taglib prefix="c" uri="http ...

  5. [Jsp] 如何在JSP页面快速输出从Servlet接收的数据_看JSTL常用C标签的威力

    JSTL的常用C标签 1)c:out 单值输出 语法: <c:out value="" /> <c:out value=""></ ...

  6. JSTL中fmt标签详解

    2019独角兽企业重金招聘Python工程师标准>>> 一:JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理. ...

  7. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  8. 推荐算法炼丹笔记:标签工程

    作者:一元 公众号:炼丹笔记 Deep Feedback Network for Recommendation(IJCAI20) 背景 做数据挖掘相关的朋友,大多数都听说过特征工程这个艺术的词汇,却鲜 ...

  9. JSTL (标准标签库)

    JSTL(标准标签库) 作用: Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性.维护性和方便性. 使用方法:J ...

最新文章

  1. python自学教程读书导图-自学Python第一天:起点读书自动领取经验值(附思路讲解)...
  2. python哪本好-Python入门看哪本书好? 这里有答案
  3. 深入Java单例模式
  4. asp.net faq: 在html文件中,用js获取session
  5. java类的修改三个方面_Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载...
  6. JSONObject和JSONArray 以及Mybatis传入Map类型参数
  7. 【C语言】单链表的相关热点面试题(包括:从尾到头打印,逆置,冒泡,寻找中间节点,倒数k节点)
  8. 阿里Android p6准备,项目经历准备篇——如何准备阿里巴巴P6/P7前端面试
  9. ​​使用win7超级终端连接华为交换机并配置端口镜像
  10. 计算机重装系统后黑屏,电脑重装系统后开机黑屏怎么办
  11. Linux|Qt工作笔记-linux系统下安装qt4.5.3版本的详细步骤
  12. omni的 osx86 ati 驱动
  13. Transformer相关的各种预训练模型优点缺点对比总结与资料收集(Transformer/Bert/Albert/RoBerta/ERNIE/XLnet/ELECTRA)
  14. 摩根大通从AWS和Azure挖人,云计算人才大战开始
  15. 《三体》死神永生之感
  16. 错误:80040154 没有注册类 的问题
  17. 案例:淘宝用户行为数据分析(SQL实现)
  18. 主要是web开发和android开发 最好是选择一个方向先专一去学, 半瓶子醋什么都想学你会发现到最后什么都不会,或者比别人多花出了太多的精力 我曾经学java的时候好高骛远,因为当时老师是一个c+
  19. openwrt的UCI 网络配置与Luci在线安装
  20. Java 爬虫微信公众号详情,并且破解微信图片跨域问题

热门文章

  1. 干货 | 携程是如何做AB实验分流的
  2. Android --- RecycleView下拉刷新,item中的图片闪烁,图片采用Glide方式加载
  3. Android --- layout_marginStart和layout_marginEnd的详细讲解
  4. 中后台管理信息系统通用原型方案_AxureUX客户关系管理系统后台设置中心原型模板正式发布...
  5. 深度解析:服务器架构和技术变革
  6. 从扁鹊医术看华为数据中心智能化运维之道
  7. php 怎么查看原生方法源码_怎么看电脑内存频率?这里有3种方法可以查看,新手分享...
  8. 成功解决TabError: inconsistent use of tabs and spaces in indentation
  9. WPS:Excel数据表格查询定位技巧之如何设置加重颜色的十字定位(定位数据更加一目了然)
  10. 成功解决Lib\sre_compile.py, line 17, in module assert _sre.MAGICMAGIC SRE module mismatch