JSTL1.0,由四个定制标志库(core,format,xml和sql) 和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV )组成。

1.基本输出设置操作
    1).<c:out> 操作示例

     <c:out value="Hello ${user.firstName} ${user.lastName}"/>
  
带缺省内容的 <c:out> 操作示例
Hello <c:out value="${user.username}" default=="Guest"/>! 禁用转义的 <c:out> 操作示例
<c:out value="${user.company}" escapeXml=="false"/>

2).<c:set> 操作示例

 <c:set var="timezone" scope="session" value="CST"/> 

 或者 <c:set var="timezone" scope="session">CST</c:set>

3).合并 <c:set> 和 <c:out> 以提供缺省变量值

 <c:set var="timezone" scope=="session">
<c:out value="${cookie['tzPref'].value}" default=="CST"/>
</c:set> <c:choose>
<c:when test="${user.role == 'member'}">
<p>Welcome, member!</p>
</c:when>
<c:otherwise>
<p>Welcome, guest!</p>
</c:otherwise>
</c:choose>

2.流控制操作
    1).对数字迭代

     <table>
<tr><th>Value</th>
<th>Square</th></tr>
<c:forEach var="x" begin="0" end="10" step="2">
<tr><td><c:out value="${x}"/></td>
<td><c:out value="${x * x}"/></td></tr>
</c:forEach>
</table>

2).对集合进行迭代

   <c:forEach var="name" items="expression" varStatus="name" begin="expression" end="expression" step="expression">
body content
</c:forEach> <c:forTokens var="name" items="expression" delims="expression" varStatus="name" begin="expression" end="expression" step="expression">
body content
</c:forTokens>

 items 的值  所产生的 item 值  
    java.util.Collection  调用 iterator() 所获得的元素  
    java.util.Map  java.util.Map.Entry 的实例  
    java.util.Iterator  迭代器元素
    java.util.Enumeration  枚举元素
    Object 实例数组  数组元素
    基本类型值数组 经过包装的数组元素
    用逗号定界的 String  子字符串
    javax.servlet.jsp.jstl.sql.Result  SQL 查询所获得的行

3).条件操作的语法

   <c:if test="expression" var="name" scope="scope">
body content
</c:if> <c:choose>
<c:when test="${pageContext.request.scheme eq 'http'}">
This is an insecure Web session.
</c:when>
<c:when test="${pageContext.request.scheme eq 'https'}">
This is a secure Web session.
</c:when>
<c:otherwise>
You are using an unrecognized Web protocol. How did this happen?!
</c:otherwise>
</c:choose>

4).异常处理

     <c:catch var="name">
body content
</c:catch>

3.URL 操作
    <c:url>
4.导入内容
    <c:import>
5.请求重定向
    <c:redirect>

6. EL 运算符
 
    算术运算符 + 、 - 、 * 、 / (或 div )和 % (或 mod )  
    关系运算符 == (或 eq )、 != (或 ne )、 < (或 lt )、 > (或 gt )、 <= (或 le )和 >= (或 ge )  
    逻辑运算符 && (或 and )、 || (或 or )和 ! (或 not )  
    验证运算符 empty 

 ${item.price * (1 + taxRate[user.address.zipcode])}
${(x >= min) && (x <= max)}

7.通过定制标记进行格式化和国际化
    1).本地化(fmt 库)

 <fmt:setLocale value="fr_CA" scope="session"/>

2).日期标记

<fmt:formatDate value="expression" timeZone="expression" type="field" dateStyle="style" timeStyle="style" pattern="expression" var="name" scope="scope"/>
<fmt:formatDate value="${log.logTime}" type="both" pattern="yyyy-MM-dd HH:mm:ss"/>

3).数字标记

   <fmt:formatNumber value="expression" type="type" pattern="expression" currencyCode="expression" currencySymbol="expression" maxIntegerDigits="expression" minIntegerDigits="expression"
maxFractionDigits="expression" minFractionDigits="expression" groupingUsed="expression" var="name" scope="scope"/>
<fmt:formatNumber value="0.02" type="currency"/>

4).消息标记

   Greeting_fr.properties 本地化资源束的内容
com.taglib.weblog.Greeting.greeting=Bonjour {0}, et bienvenue au JSTL Blog.
com.taglib.weblog.Greeting.return=Retournez
<fmt:bundle basename="com.taglib.weblog.Greeting">
<fmt:message key="com.taglib.weblog.Greeting.greeting">
<fmt:param value="${user.fullName}"/>
</fmt:message>

8.交换XML和数据库内容的定制标记库
    1).xml库

 <x:parse xml="expression" var="name" scope="scope" filter="expression" systemId="expression"/>

2).sql库

 <sql:setDataSource dataSource="expression" var="name" scope="scope"/>

     <sql:setDataSource url="expression" driver="expression" user="expression" password="expression" var="name" scope="scope"/>
<sql:setDataSource var="dataSrc" url="jdbc:mysql:///taglib" driver="org.gjt.mm.mysql.Driver" user="admin" password="secret"/>
<sql:query var="queryResults" dataSource="${dataSrc}">
select * from blog group by created desc limit ?
<sql:param value="${6}"/></sql:query>
<table border="1">
<tr>
<th>ID</th>
<th>Created</th>
<th>Title</th>
<th>Author</th>
</tr>
<c:forEach var="row" items="${queryResults.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.created}"/></td>
<td><c:out value="${row.title}"/></td>
<td><c:out value="${row.author}"/></td>
</tr>
</c:forEach>
</table>

以上来自个人知识总结和回顾,转载请注明出处,有不妥之处,欢迎留言谈论。

JSTL1.0 知识回顾与总结的更多相关文章

  1. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  2. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  3. [C#] C# 知识回顾 - 异常介绍

    异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...

  4. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  5. [.NET] C# 知识回顾 - 事件入门

    C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...

  6. [C#] C# 知识回顾 - 序列化

    C# 知识回顾 -  序列化 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902005.html 目录 序列化的含义 通过序列化保存对象数据 众 ...

  7. [C#] C# 知识回顾 - 表达式树 Expression Trees

    C# 知识回顾 - 表达式树 Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译表达式树 执行表达式树 修改表达 ...

  8. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  9. C#基础知识回顾-- 反射(3)

    C#基础知识回顾-- 反射(3)   获取Type对象的构造函数: 前一篇因为篇幅问题因为篇幅太短被移除首页,反射这一块还有一篇“怎样在程序集中使用反射”, 其他没有什么可以写的了,前两篇主要是铺垫, ...

随机推荐

  1. 九度OJ 1355:扑克牌顺子 (模拟)

    时间限制:2 秒 内存限制:32 兆 特殊判题:否 提交:1676 解决:484 题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^). ...

  2. iostat命令简单使用

    1.iostat使用范围 iostat命令可以生成3种类型的报告: (1)CPU使用情况的报告 (2)设备使用情况的报告 (3)网络文件系统(NFS)使用情况的报告 2.每种报告的格式说明 关于CPU ...

  3. Day 1 :成功完成注册

        今天成功完成了cnblogs的注册,之后会在这里开业咯!记录下此刻时间

  4. centos 下安装pdo_pgsql 只需一个命令_______yum install php56w-pgsql

    [root@localhost ~]# yum install php56w-pgsql Loaded plugins: fastestmirror, langpacks Repository pgd ...

  5. Linux:进程管理

    Linux:进程管理 进程间通信 文件和记录锁定. 为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放.这是UNIX为共享 ...

  6. [原创]Scala学习:编写Scala脚本

    scala支持脚本 1)在/opt/scala-script下创建一个文件hello.scala 编辑内容如下: $ hello ,this is the first scala script 2)运 ...

  7. 【leetcode刷题笔记】Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  8. windows下python常用库的安装

    windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...

  9. 总结最近写的h5项目

    其实最近最大的感触就是真正独立完结一个项目的人学到的东西是最多,但并不意味着自己已全部吸收,还是得消化消化 最近做了一个移动端的h5页面,感兴趣的可以访问看一看:http://app.500jia.c ...

  10. mysql 启动服务错误

    在博客上看到下面这个文档解决了问题.推荐可以看下. http://blog.csdn.net/yaowuliu/article/details/51133279