zoukankan      html  css  js  c++  java
  • JSTL1.0 知识回顾与总结

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

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

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

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

    1 <c:set var="timezone" scope="session" value="CST"/> 
    2 
    3 或者 <c:set var="timezone" scope="session">CST</c:set>


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

     1 <c:set var="timezone" scope=="session">
     2        <c:out value="${cookie['tzPref'].value}" default=="CST"/>
     3     </c:set>
     4     
     5     <c:choose>
     6       <c:when test="${user.role == 'member'}">
     7         <p>Welcome, member!</p>
     8       </c:when>
     9       <c:otherwise>
    10         <p>Welcome, guest!</p>
    11       </c:otherwise>
    12     </c:choose>


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

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

        2).对集合进行迭代
       

    1   <c:forEach var="name" items="expression" varStatus="name" begin="expression" end="expression" step="expression">
    2         body content
    3     </c:forEach>
    4 
    5     <c:forTokens var="name" items="expression" delims="expression" varStatus="name" begin="expression" end="expression" step="expression">
    6         body content
    7     </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).条件操作的语法
       

     1   <c:if test="expression" var="name" scope="scope">
     2         body content
     3     </c:if>
     4 
     5     <c:choose>
     6       <c:when test="${pageContext.request.scheme eq 'http'}">
     7         This is an insecure Web session.
     8       </c:when>
     9       <c:when test="${pageContext.request.scheme eq 'https'}">
    10         This is a secure Web session.
    11       </c:when>
    12       <c:otherwise>
    13         You are using an unrecognized Web protocol. How did this happen?!
    14       </c:otherwise>
    15     </c:choose>


        4).异常处理
       

    1     <c:catch var="name">
    2         body content
    3     </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 

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


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

    1 <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).数字标记
       

    1   <fmt:formatNumber value="expression" type="type" pattern="expression" currencyCode="expression" currencySymbol="expression" maxIntegerDigits="expression" minIntegerDigits="expression"
    2      maxFractionDigits="expression" minFractionDigits="expression" groupingUsed="expression" var="name" scope="scope"/>
    3     <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库

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

        2).sql库
       

     1 <sql:setDataSource dataSource="expression" var="name" scope="scope"/>
     2 
     3     <sql:setDataSource url="expression" driver="expression" user="expression" password="expression" var="name" scope="scope"/>
     4         <sql:setDataSource var="dataSrc" url="jdbc:mysql:///taglib" driver="org.gjt.mm.mysql.Driver" user="admin" password="secret"/>
     5         <sql:query var="queryResults" dataSource="${dataSrc}">
     6         select * from blog group by created desc limit ?
     7         <sql:param value="${6}"/></sql:query>
     8     <table border="1">
     9       <tr>
    10         <th>ID</th>
    11         <th>Created</th>
    12         <th>Title</th>
    13         <th>Author</th>
    14       </tr>
    15     <c:forEach var="row" items="${queryResults.rows}">
    16       <tr>
    17         <td><c:out value="${row.id}"/></td>
    18         <td><c:out value="${row.created}"/></td>
    19         <td><c:out value="${row.title}"/></td>
    20         <td><c:out value="${row.author}"/></td>
    21       </tr>
    22     </c:forEach>
    23     </table>


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

  • 相关阅读:
    2020年SpringBoot面试题
    Java自带的性能监测工具
    jvm怎么判断哪些对象应该回收呢
    IDEA版本破解
    透彻解析Java类加载机制
    C# DataGridView使用BindingNavigator实现简单分页功能
    C# DataGridView使用自定义控件实现简单分页功能
    C# DataGridView自动保存列的宽度和位置
    C# DataGridView右键菜单自定义显示及隐藏列
    转:C# String为值类型还是引用类型
  • 原文地址:https://www.cnblogs.com/wjqblogs/p/4056657.html
Copyright © 2011-2022 走看看