zoukankan      html  css  js  c++  java
  • java_web学习(五) JSTL标准标签库

    1.什么是JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

    JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

    根据JSTL标签所提供的功能,可以将其分为5个类别。

    • 核心标签(core): 核心标签库,我们学习的重点;
    • 格式化标签 :只需要学习两个标签即可;
    • SQL 标签( sql):数据库标签库,不需要学习了,它过时了;
    • XML 标签: 不需要学习了,它过时了。
    • JSTL 函数: 主要定义对字符串操作的函数库,在EL表达式中运行。

    2.JSTL包 下载

        我推荐大家去apache下载

        http://tomcat.apache.org/taglibs/

        点击网址进入这个界面

        

         选中[Standard],进入

          

           下一步把这四个taglibs下载下来

         

          下一步

           

          

       

    3.使用taglib指令导入标签库:

     除了JSP动作标签外,使用其他第三方的标签库都需要:

    • 导包;

    • 在使用标签的JSP页面中使用taglib指令导入标签库;

         

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

    4、core标签库常用标签:

        <c:out>:用于显示的标签

        <c:set>:   用于赋值的标签

        <c:remove>:用于删除的标签

        <c:catch>:用于捕获异常的标签

        <c:forEach>:用于循环遍历对象的标签

       遍历List:

       

     1 <%  
     2     List<String> names = new ArrayList<String>();  
     3     names.add("zhangSan");  
     4     names.add("liSi");  
     5     names.add("wangWu");  
     6     names.add("zhaoLiu");  
     7     pageContext.setAttribute("ns", names);  
     8 %>  
     9 <c:forEach var="item" items="${ns }">  
    10     <c:out value="name: ${item }"/><br/>  
    11 </c:forEach> 

    5.代码比较

    5.1没运用JSTL之前的代码

    1.得先导入包

    2.<%%>获取request的对象

    分析:此界面不够整洁,不利于前端工作者对界面的美化,我们的目的是能使前端工作者专注于界面的美化,不受后端代码干扰

    5.2运用JSTL之后的代码

    总结

    1.不用导入包 

    ${table_1}直接取代

    <%@ page import="java.util.List" %>

    <%@ page import="entity.House" %>

    <%List<House> houseList = (List)request.getAttribute("table_1");%>。

    其中本例中的${table_1}

    其实它完整写法: ${requestScope.table_1}

    原理EL表达式,可以直接取request范围内变量

    EL表达式,定义了多个隐式对象.

    5.3关键代码分析

    6.JSTL代码对view层的格式化

         在我们通过.jsp文件把数据显示出来的时候,数据应该被处理过了。即我们打开页面看到的数据与数据存储在数据库的形态是不同的。

         我们看到的处理过的数据

         

         保存在数据库的数据

         

          两个数据是一样的,但存在很大差别。

    6.1格式化数据(Format)

          6.1.1 引入该标签库的方法:

          <%@ taglib prefix="fmt" uri="http://Java.sun.com/jsp/jstl/fmt" %>

         

          6.1.2 标签种类

           1)数字日期格式化。formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签。

           2)读取消息资源。bundle标签、message标签、setBundle标签。

           3)国际化。setlocale标签、requestEncoding标签。

          6.1.3 代码实现

           

     1 <c:forEach items="${fixedAssetsList}" var="fa">
     2   <tr bgcolor="#FFFFFF">            
     3     <td>${fa.id}</td>
     4     <td>${fa.name}</td>
     5     <td>
     6         <fmt:formatNumber type="currency">${fa.money}</fmt:formatNumber>
     7     </td>
     8     <td>
     9         <fmt:formatDate value="${fa.startUseTime}" pattern="yyyy年MM月dd日hh:mm:ss"></fmt:formatDate>       
    10     </td>
    11   </tr>
    12 </c:forEach>

    view层应对各种数学按照一定格式包装,其中fmt就提供了很大的便利,

    最常见的就是对数字(formatNumber)和日期(formatData)的包装

         

     谢谢你们这么帅,还能抽空来看我的随笔!本人初学Java,欢迎指点和提问。

     

       

  • 相关阅读:
    39 多线程(十一)——ThreadLocal
    38 多线程(十)——volatile 数据同步
    Linux内存描述之内存区域zone–Linux内存管理(三)
    Linux内存描述之内存节点node–Linux内存管理(二)
    Linux内存描述之概述--Linux内存管理(一)
    服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA)
    乐观
    乱七八糟的学习资料汇总(python3.x,pyqt,svn,git)
    Linux学习资料网站汇总链接(持续更新ing)
    浅析十大常见排序(含C++代码)
  • 原文地址:https://www.cnblogs.com/Crezy/p/6890160.html
Copyright © 2011-2022 走看看