`
zhanshenny
  • 浏览: 260590 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jstl标签学习笔记

阅读更多
一. 用maven建立web工程
   mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
   mvn package
   mvn eclipse:eclipse

二. 在pom.xml中添加
   <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<type>jar</type>
<scope>compile</scope>
   </dependency>

   <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
   </dependency>

三. jstl简介
   JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类:
       a. 核心标签库
       b. I18N格式化标签库
       c. SQL标签库
       d. XML标签库
       e. 函数标签库

a. 核心标签库
    JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。使用这些标签能够完成JSP页面的基本功能,减少编码工作。
(1)表达式控制标签:out标签、set标签、remove标签、catch标签。
(2)流程控制标签:if标签、choose标签、when标签、otherwise标签。
(3)循环标签:forEach标签、forTokens标签。
(4)URL操作标签:import标签、url标签、redirect标签。

在JSP页面引入核心标签库的代码为:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

1、表达式控制标签
    表达式控制分类中包括<c:out>、<c:set>、<c:remove>、<c:chtch>4个标签,现在分别介绍它们的功能和语法。
    <c:out>标签
    【功能】:用来显示数据对象(字符串、表达式)的内容或结果。
     在使用Java脚本输出时常使用的方式为:
     <% out.println(“字符串”)%>
     <%=表达式%>
     在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用<c:out>标签就可以实现以上功能。
     <c:out value=”字符串”>
     <c:out value=”EL表达式”>
     提示:JSTL的使用是和EL表达式分不开的,EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,<c:out>有特定的结果处理功能,EL的单独使用会降低程序的易读性,建议把EL的结果输入放入<c:out>标签中。

     <c:out>标签的使用有两种语法格式。
     【语法1】:
          <c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]>
     【语法2】:
          <c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值
          </c:out>
     这两种方式没有本质的区别,只是格式上的差别。标签的属性介绍如下。
     value:指定要输出的变量或表达式。
     escapeXml:设定是否转换特殊字符(如&lt、&gt等一些转义字符),在默认值为true的情况下直接在输出&lt的,如果改为false将会进行转义输出“<”等。
     default:为默认输出结果。如果使用表达式得到的结果为null(注意与空区别),将会输出默认结果。

    <c:set>标签
    功能:主要用于将变量存取于JSP范围中或JavaBean属性中。
    <c:set>标签的编写共有4种语法格式。
    语法1:存值,把一个值放在指定(page、session等)的map中。
    <c:set value=”值1” var=”name1” [scope=”page|request|session|application”]>
    含义:把一个变量名为name1值为“值1”的变量存储在指定的scope范围内。

    语法2:
    <c:set var=”name2” [scope=”page|request|session|application”]>值2</c:set>
    含义:把一个变量名为name2,值为值2的变量存储在指定的scope范围内。

    语法3:
    <c:set value=”值3” target=”JavaBean对象” property=”属性名”/>
    含义:把一个值为“值3”赋值给指定的JavaBean的属性名。相当与setter()方法。

    语法4:
    <c:set target=”JavaBean对象” property=”属性名”>值4</c:set>
    含义:把一个值4赋值给指定的JavaBean的属性名。
   
    例子:
    <%@ page language="java" pageEncoding="gbk"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
    <title>set标签的使用</title>
    </head>
    <body>
    <li>把一个值放入session中。<c:set value="coo" var="name1" scope="session"></c:set>
    <li>从session中得到值:${sessionScope.name1 }
    <li>把另一个值放入application中。<c:set var="name2" scope="application">olive</c:set>
    <li> 使用out标签和EL表达式嵌套得到值:
    <c:out value="${applicationScope.name2}">未得到name的值</c:out></li>
    <li>未指定scope的范围,会从不同的范围内查找得到相应的值:${name1 }、${name2 }          
</body>
</html>

    <c:remove>标签
    <c:remove>标签主要用来从指定的JSP范围内移除指定的变量。
    【语法】:
        <c:remove var=”变量名” [scope=”page|request|session|application”]/>
     其中var属性是必须的,scope可以以省略。

     <c:catch>标签
     用来处理JSP页面中产生的异常,并将异常信息存储。
    【语法】:
     <c:catch var=”name1”>
          容易产生异常的代码
     </c:catch>
    【参数说明】:
     var表示由用户定义存取异常信息的变量的名称。省略后也可以实现异常的捕获,当就不能显示的输出异常信息。

2. 流程控制标签
    流程控制标签主要用于对页面简单业务逻辑进行控制。流程控制标签包含有4个:<c:if>标签、<c:choose>标签、<c:when>标签和<c:otherwise>标签。下面将介绍这些标签的功能和使用方式。
    1).<c:if>标签
    <c:if>同程序中的if作用相同,用来实现条件控制。
   【语法1】:
   <c:if test=”条件1” var=”name” [scope=”page|request|session|application”]>
   【语法2】:
   <c:if test=”条件2” var=”name”[scope=”page|request|session|application”]>
   【参数说明】:
   (1)test属性用于存放判断的条件,一般使用EL表达式来编写。
   (2)var指定名称用来存放判断的结果类型为true或false。
   (3)scope用来存放var属性存放的范围。
   使用场景:在开发中经常会出现不同用户的权限,首先对用户名进行判断(包括进行数据库验证,该功能可以由JavaBean实现,使用EL表达式得到一个布尔型的结果),把判断的结果存放在不同的JSP范围内(比如常用的session内),这样在每个页面都可以得到该用户的权限信息,根据不同权限的用户显示不同的结果。

    2).<c:choose>、<c:when>和<c:otherwise>标签
    这3个标签通常情况下是一起使用的,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。
【语法1】:
<c:choose>
         <c:when>
          …..//业务逻辑1
         <c:otherwise>
          …..//业务逻辑2
         <c:otherwise>
         ….//业务逻辑3
</c:choose>

【语法2】:
<c:when text=”条件”>
   表达式
</c:when>

【语法3】:
<c:otherwise>
  表达式
</c:otherwise>

【参数说明】:
(1)语法1为3个标签的嵌套使用方式,<c:choose>标签只能和<c:when>标签共同使用。
(2)语法2为<c:when>标签的使用方式,该标签都条件进行判断,一般情况下和<c:choose>共同使用。
(3)<c:otherwise>不含有参数,只能跟<c:when>共同使用,并且在嵌套中只允许出现一次


b. I18N格式标签库
    JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要I18N格式标签库(I18N-capable formation tags liberary)。引入该标签库的方法为:

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

I18N格式标签库提供了11个标签,这些 标签从功能上可以划分为3类如下:

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

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

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

数字日期格式化

数字日期格式化标签共有6个,用来将数字或日期转换成设定的格式。

1.<frm:formatNumber/>标签

该标签依据特定的区域将数字改变为不同的格式来显示。

【语法1】:

<frm:formatNumber value=”被格式化的数据”[type=”number|currency|percent”]

                                               [pattern=”pattern”]

                                               [currencyCode=”code”]

                                               [currencySymbol=”symbol”]

                                               [groupingUsed=”true|false”]

                                               [maxIntergerDigits=”maxDigits”]

                                               [minIntergerDigits=”minDigits”]

                                               [maxFractionDigits=”maxDigits”]

                                               [minFractionDigits=”minDigits”]

                                               [var=”name”]

                                               [scope=page|request|session|application]

/>

【语法2】:

<frm:formatNumber [type=”number|currency|percent”]

                                               [pattern=”pattern”]

                                               [currencyCode=”code”]

                                               [currencySymbol=”symbol”]

                                               [groupingUsed=”true|false”]

                                               [maxIntergerDigits=”maxDigits”]

                                               [minIntergerDigits=”minDigits”]

                                               [maxFractionDigits=”maxDigits”]

                                               [minFractionDigits=”minDigits”]

                                               [var=”name”]

                                               [scope=page|request|session|application]

>

被格式化的数据

<frm:formatNumber>


分享到:
评论

相关推荐

    JSTL学习笔记,对使用JSTL标签使用者非常有帮助

    JSTL学习笔记,对使用JSTL标签使用者非常有帮助

    jstl标签帮助文档

    jsp页面标签库常用标签帮助文档,带学习笔记,对JSTL标签介绍很详细。英文版的。

    JSTL学习笔记

    全面介绍了JSTL标签库的应用,具用很强的实用性,适合大部分的java开发者学习和参考

    jstl 标签的jar tld 笔记 自己学习了 希望对你有帮助

    关于jstl的所有东西的集合 希望可以给你有所帮助

    JSTL.zip_web网页标签笔记

    关于web网页中的标签学习的一些笔记,希望对各位有用

    JSP网络编程学习笔记源代码 part2

    第五篇为“标签语言和表达式语言”,主要讲述JSP的标签技术,JSP提供的标准标签库JSTL的用法及用户如何自定义自己的标签库;第六篇为“Web应用高级专题”,主要讲述Servlet过滤器、JSP异常处理、JSP日志、认证和安全...

    EL和JSTL使用详解

    教你怎么熟练使用EL表达式和JSTL标签库的使用方法。 自己做的学习笔记,很详细哦!

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    J2EE学习笔记(J2ee初学者必备手册)

    Unix 学习笔记7 一、Unix前言............7 二、Unix基础知识....7 三、Unix常用命令....8 四、 文件系统权限.21 五、软硬连接的区别..........................22 六、范例程序...........22 七、网络基本命令...26...

    jsp学习笔记

    这是我学习JSP做的一个笔记,不包括框架与JSTL 及标签编程内容,其中有不少学习过程的总结和心得

    JSP2_0技术学习笔记

    对学习jsp技术的总结 jsp标签的应用

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    Struts 2.1.8_学习源码

    Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、改和查 实际业务中数据来自数据库,从DAO层查询,本实例使用静态资源的方式模拟, 主要是关于...

Global site tag (gtag.js) - Google Analytics