zoukankan      html  css  js  c++  java
  • 10.javaweb核心标签库详解

    一、JSTL简介及在项目中安装配置

    1,  简介

     

    使用JSTL标签的目的就是不希望jsp中出现java逻辑代码

    分类

     

    2,  JSTL的安装配置

    首先将jar包中的各个标签库配置文件拷贝到项目WEB-INF目录下,以供使用

     

    然后再将整个jar包拷贝至tomcat/lib目录下

    3,  JSTL简单使用

     

    为了方便使用,也可以统一在web.xml文件中配置标签库的映射路径

     

    此后,可以通过映射路径名加载标签库

     

    二、核心标签库

    1,要求:利用核心标签库提供的主要标签完成判断、迭代、输出等常见操作

    2,主要标签

     

    3.表达式控制语句

    3.1<c:out>标签使用:代替java脚本中的<% out.println(“字符串”)%>或<%=表达式%>

     

    功能:用来输出数据对象(字符串或表达式)的内容或结果。JSTL的使用和EL表达式分不开,EL虽然可以将结果直接返回给页面,但有时为空,<c:out>对此有特定的功能处理(默认值)

    语法:

     

    EscapXml表示是否将一些特殊字符进行HTML编码后输出,默认为true

     

    使用范例

     

    3.2<c:set>标签的使用

     

    功能:用于把一个对象存在指定的域范围内,或者把一个对象存到指定的Map或JavaBean对象中

     

    语法:

    语法1存值,把一个值放在指定的域范围内。
        <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的属性名。
      从功能上分语法1和语法2、语法3和语法4的效果是一样的,只是把value值放置的位置不同,至于使用那个根据个人的喜爱,语法1和语法2是向scope范围内存储一个值,语法3和语法4是给指定的JavaBean赋值。

     

    标签属性:

     

    使用范例

        将对象存在指定的域范围中

       

    设置javaBean属性值

     

        将一个data对象的值存到Map集合中

     

        相当于插入一对键值,然后可以通过键找到相应值

    3.3<c:remove>标签的使用

    功能:从指定JSP范围移除指定属性

     

    语法:<c:remove var=”变量名” [scope=”page|request|session|application”]>其中scope可以省略

     

    使用范例

     

    3.4<c:catch>标签的使用

    功能:用于捕获嵌套在标签体中的内容抛出的异常

     

    语法:<c:catch [var=”varName”]>可能产生异常的代码</c:catch>。var属性用于标识捕获的异常,这个异常将保存在page域中

    使用范例

     

    3.5<c:if>标签的使用

     

    功能:与程序if语句相同

     

    语法:

        语法一:没有标签体的

         <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>

        语法二:有标签体的

          <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
              标签体内容
        </c:if>

        参数说明:(1test属性用于存放判断条件,一般为EL表达式

                  2var属性指定存放判断结果的属性名,truefalse

                  3scope属性用来指定var属性存放的范围

        

         使用范例:设计一个登陆页面tagTest.jsp,将登陆情况保存在session域中,并根据登陆情况做出相应反应

        

         输入admin,点击登陆

        

         3.6流程控制标签:<c:choose>,<c:when>,<c:otherwise>完成switch

         语法:

    <c:choose>作为父标签

    <c:when test=”条件一”>//业务逻辑</c:when>

    <c:when test=”条件二”>//业务逻辑</c:when>

    <c:otherwise>//业务逻辑</c:otherwise>

     

    使用范例:

     

    3.7循环标签:<c:forEach>

     

    功能:根据循环条件遍历集合中的元素,如果不设置集合,则与for()循环功能相同与从begin开始循环执行标签体直到end,并将循环值保存在var中

    语法:

    <c:forEach
          var=”name”
          items=”Collection”
          varStatus=”StatusName”
          begin=”begin”
          end=”end”
          step=”step”>
          本体内容
        </c:forEach>

    参数解析】:
      (1)var设定变量名用于存储从集合中取出的元素。
      (2)items指定要遍历的集合。
      (3)varStatus设定变量名,该变量用于存放集合中元素的信息(索引值,循环次数等)。    
      (4)begin、end用于指定遍历的起始位置和终止位置(可选)。
      (5)step指定循环的步长(即每次循环经过的元素个数)。

        

    varStatus有四个状态属性

     

    使用范例

     

    结果

     

    不遍历集合,仅当作循环功能使用,以下jsp打印十行十列表格,表格内容为行列乘积。如果与<c:if>连用,可实现while()循环的功能

     

    3.8循环标签<c:forTokens>

     

    功能:根据指定的分隔符将字符串分割成子串数组然后再迭代它们,如果未指定分隔符,则将整个元素截取,在实际应用中用于除去某些字符在页面中显示

     

    语法:

       <c:forTokens items=”strigOfTokens”
                delims=”delimiters”
                [var=”name”
                begin=”begin”
                end=”end”
                step=”len”
                varStatus=”statusName”] >
            本体内容
           </c:forTokens>

    【参数说明】
      (1)items指定被迭代的字符串。
      (2)delims指定使用的分隔符。
      (3)var指定用来存放遍历到的成员。
      (4)begin指定遍历的开始位置(int型从取值0开始)。
      (5)end指定遍历结束的位置(int型,默认集合中最后一个元素)。
      (6)step遍历的步长(大于0的整型)。
      (7)varStatus存放遍历到的成员的状态信息。

     

    使用范例

     

    3.9<c:import>标签的使用

     

    功能:该标签可以把其他静态或动态文件包含到本JSP页面,与<jsp:include>的区别为:<jsp:include>只能包含同一个web应用中的文 件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

     

     

    语法:

        【语法1】:
    <c:import
        url=”url”
        [context=”context”]
        [value=”value”]
        [scope=”page|request|session|application”]
        [charEncoding=”encoding”]/>

    【语法2】:
    <c:import
        url=”url”
        varReader=”name”
        [context=”context”]
        [charEncoding=”encoding”]/>

    【参数说明】:
    (1)URL为资源的路径,当引用的资源不存在时系统会抛出异常,因此该语句应该放在<c:catch></c:catch>语句块中捕获。
    (2)引用资源有两种方式:绝对路径和相对路径。
        使用绝对路径的示例如下:<c:import url=”http://www.baidu.com”>
        使用相对路径的示例如下:<c:import url=”aa.txt”>,aa.txt放在同一文件目录。
    (3)如果以“/”开头表示应用的根目录下。例如:tomcat应用程序的根目录文件夹为webapps。导入webapps下的文件bb.txt的编写方式为:<c:import url=”/bb.txt”>
        如果访问webapps管理文件夹中其他web应用就要用context属性。
    (4)context属性用于在访问其他web应用的文件时,指定根目录。例如,访问root下的index.jsp的实现代码为:<c:import url=”/index.jsp” context=”/root”>
        等同于webapps/root/index.jsp
    (5)var、scope、charEncoding、varReader是可选属性。

    使用范例

           使用绝对路径导入网页

     

    使用相对路径引用本应用中的文件

     

    将导入的文件存储在域中,然后通过<c:out>输出

     

    3.10<c:url>标签

    功能; 标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。

    语法:

         【语法1】:指定一个url不做修改,可以选择把该url存储在JSP不同的范围中。
    <c:url

    value=”value”
        [var=”name”]
        [scope=”page|request|session|application”]
        [context=”context”]/>

    【语法2】:配合 <c:param>标签给url加上指定参数及参数值,可以选择以name存储该url。
                         <c:url
                      value=”value”
                      [var=”name”]
                      [scope=”page|request|session|application”]
                      [context=”context”]>
                    <c:param name=”参数名” value=”值”>
                         </c:url>

     

                使用实例(在浏览器可见注释方法中,不能有特殊字符出现,否则可能报错)

                 

            点击”百度首页(不带参数)”

           

            点击”百度首页(带参数)”

           

       3.11<c:redirect>标签

      

       功能:该标签用来实现请求的重定向。同时可以配合使用<c:param>标签在url中加入指定的参数。

      

       语法:

       【语法1】:
    <c:redirect url=”url” [context=”context”]/>
    【语法2】:
    <c:redirect url=”url”[context=”context”]>
        <c:param name=”name1” value=”value1”>
    </c:redirect>
    【参数说明】:
    (1)url指定重定向页面的地址,可以是一个string类型的绝对地址或相对地址。
    (2)context用于导入其他web应用中的页面。当要使用相对路径重定向到同一服务器下的其他web资源时,context属性指定其他web应用程序的名称

         使用范例

        

         当服务器解析此jsp时会把地址重定向到百度首页,并且传入参数

        

         3.12<c:param>标签

          在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套 在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。
      <c:param>标签在为一个URL地址附加参数时,将自动对参数值进行URL编码,例如,如果传递的参数值为“中国”, 则将其转换为“%d6%d0%b9%fa”后再附加到URL地址后面,这也就是使用<c:param>标签的最大好处

  • 相关阅读:
    [设计模式]<<设计模式之禅>>关于迪米特法则
    [设计模式]<<设计模式之禅>>关于接口隔离原则
    [设计模式]<<设计模式之禅>>关于依赖倒置原则
    /proc/meminfo分析(一)
    Dynamic DMA mapping Guide
    Linux时钟
    Linux系统休眠和设备中断处理
    Linux调度器
    Linux调度器
    Linux标识进程
  • 原文地址:https://www.cnblogs.com/chenxd/p/7819334.html
Copyright © 2011-2022 走看看