您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 2浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

jstl

顺其自然~ 发布时间:2020-09-22 10:52:20 ,浏览量:2

JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。

JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。

如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件中。

优点

1)实现了JSP页面的代码复用。基于标签库原理,重复率较高的代码块支持复用,提高效率。

2)书写JSP页面时可读性更强。长得像XML,方便前端查看和参与开发。

3)在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用服务器之间的移植。

4)简化了JSP和WEB应用程序的开发。

JSTL标签分类

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

1)核心标签(最常用、最重要,也是最基本的标签)

2)格式化标签

3)SQL标签

4)XML标签

5)JSTL函数(很常用)

要使用JSTL库,要在每一个JSP的顶部,使用该库必须包括一个指令。

 (1)核心标签

核心组的标签是最常用的JSTL标签。以下是在JSP的语法包含JSTL核心库:

 
 

有以下核心JSTL标签:    

(2)格式化标签

使用JSTL格式标签来格式化和显示文本,日期,时间和数字的,国际化的网站。以下是在您的JSP的语法,包括

格式化库:

 
 

以下是格式化JSTL标签列表:

 

(3)SQL标签

       JSTL的SQL标签库标签可以交互关系型数据库(如Oracle,MySQL或Microsoft SQL Server的关系数据库管理系

统)。以下是在您的JSP语法包括JSTL SQL库:

 
 

以下是SQL JSTL标签的列表:  

(4)XML标签

       JSTL XML标记提供了一种创建和操作XML文档的JSP为中心的方式。以下是在您的JSP的语法包括JSTL XML库。

JSTL XML标记库具有自定义标签与XML数据交互。这包括XML解析,转换XML数据,流控制,基于XPath表达式。

 
 

       在继续之前的例子中,将需要复制下面的两个XML和XPath相关的库到 的\lib目录:

       XercesImpl.jar: 下载地址 http://www.apache.org/dist/xerces/j/

       xalan.jar: 下载地址 http://xml.apache.org/xalan-j/index.html

       以下是XML JSTL标签列表: 

(5)JSTL函数

       JSTL包括一些标准功能,其中大部分是常见的字符串操作函数。以下是在JSP的语法包函JSTL函数库:

 
 

以下是JSTL函数列表:

 

标签

       标签是显示表达式的结果,类似的方式效果,与其不同的是标签可以使用简单的"."操

作符来访问属性。例如,要访问customer.address.street,使用的标签是:

 
 

       标签可自动转义XML标签,以便他们都不会计算为实际的标签。

       标签具有以下属性:

       

       标签的用法:

       1)输出常量:可在属性value中直接赋值

       2)输出变量:变量不存在时可配合defalut属性输出默认值,还可以通过属性escapeXml控制转义字符的输出方

式。

       实例:   

       结果:

       

    标签

       标签是JSTL的setProperty动作的友好版本。标签是有用的,因为它的表达式求值,并使用结果的

JavaBean或Java.util.Map对象设置一个值。

       标签具有以下属性:

       

       如果指定目标,属性也必须指定。

       标签的用法:

       1)存值到scope中:可将值以变量形式存放在指定的范围中(2种方式)

       2)存值到JavaBean的属性中

       实例:

       实例类Person的代码:

package com.entity;

/**
 * 实体类Person
 * @author Administrator
 * @date 2016年7月27日
 */
public class Person {
	private String name;
	private int age;
	private String hobby;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getHobby() {
		return hobby;
	}

	public void setHobby(String hobby) {
		this.hobby = hobby;
	}
}

       NewFile.jsp页面:










JSTL使用


     JSTL标签的使用
     
     
     
     
       
     
     football
      
     
     
       
     22
            

       结果:

       

    标签

       标签是删除变量,无论是从指定的范围内或范围内的变量(如果没有指定范围)。这个动作通常是不

特别有帮助,但它可以帮助确保一个JSP范围内的资源,它负责清理。

       标签具有以下属性:

       

       标签的用法:

       移除掉某个变量,var属性是必选的;scope属性是可选的。

       实例:

       

       结果:

       

    标签

       标签捕获任何异常信息,发生在它的身上,有选择地公开。简单地用于错误处理,更优雅地处理这

个问题。

       标签具有以下属性:

       

       标签的用法:

       可以包含那些容易出错的JSTL标签(逻辑)。

       实例:

       

       结果:

       

       标签

       标签计算表达式,只有当表达式的值为true,则显示其主体内容。

       标签具有以下属性:

       

       标签的用法:

       同程序中的if作用相同,用来实现分支条件控制。

       text属性用于存放判断的条件,一般使用EL表达式来编写;

       var属性是指定名称用来存放判断的结果类型为true或false;

       scope属性是用来存放var属性存放的范围。

       实例:

       根据用户输入的成绩进行等级判断

       

       结果:

         

       这个例子没有做完,使用标签实现比较繁琐,我们后面可以使用标签以及标签来实

现。

   标签、标签和标签

       就像Java switch语句,它可以让你选择一些替代方案品。正如switch语句case语句,标

签有的标签。一个switch语句中有default子句来指定一个默认的行动同样的方式有

作为默认子句。

       通常这三个标签被放在一起使用。标签嵌套在标签和标签的外面作为他们

的父标签来使用;其中标签和标签也可以一起组合使用。

       标签没有任何属性。标记有一个属性,下面列出了。标签没有任何属性。

       标记具有以下属性:

       

        语法结构一:同时使用标签、标签和标签

        结构:

     

         //业务逻辑

     

     

         //业务逻辑

     

     ...

     

         //业务逻辑

     

        

实例代码:








JSTL使用


     JSTL标签的使用
     
     
     
           
           
     
     
           
                  
           
           
                  
           
           
                  
           
           
                  
           
           
                  
           
           
                  
           
     

        结果:

        

        

        语法结构二:只使用标签和标签

        结构:

     
         表达式
     

        实例:

        在上面的代码中加上以下代码:

        

        结果:

        

    标签

        存在这些标签嵌入Java的一个很好的选择,让while或do-while循环通过脚本。标签是常用的标

签,因为它遍历对象的集合。

       标记有以下属性:

       

       标签的用法:

       根据循环条件遍历集合(Collection)中的元素。

       var属性是设定变量名用于存储从集合中取出元素(必须无默认值);

       items属性是指定要遍历的几个(必须无默认值);

       begin属性和end属性是用于指定遍历的起始位置和终止位置(有默认);

       step属性指定循环的步长(有默认);

       varStatus属性通过index、count、first和last几个状态值,描述begin和end子集中的元素的状态。

       常用用法一:全部遍历

     操作var变量表示的元素

       实例代码:










JSTL使用


     JSTL标签的使用
     
     
     
     
            
     
     

       结果:

       

       常用用法二:部分遍历

       操作var变量表示的元素

      上面实例加上以下代码:

      

      结果:

      

      常用用法三:部分遍历并且指定步长

       操作var变量表示的元素

       上面实例加上以下代码:

        

        结果:

        

        常用用法四:部分遍历时输出元素的状态

       操作var变量表示的元素

       上面实例加上以下代码:

       

        结果:

        

    标签

       标签是用来打破的字符串令牌和遍历每个标记。标签有类似的属性,

除了一个额外的属性delims指定要使用的字符作为分隔符。

        

       标签的用法:

       用于浏览字符串,并根据指定的字符将字符串截取。

       items属性用于指定迭代的字符串;

       delims属性指定使用的分隔符;

       var属性用来指定存放遍历到的成员;

       begin属性指定遍历的开始位置(int型从取值0开始);

       end属性是指定遍历的结束位置(int型,默认集合中最后一个元素);

       step属性指定循环的步长(大于0的整型);

       varStatus属性通过index、count、first和last几个状态值,描述begin和end子集中的元素的状态。

       实例:

       

       结果:

       

       对于其他的属性可以自行进行设置与验证。      

标签

       标签提供动作标签的所有的功能动作,但也可以包含绝对URL。例如,允许使用导入

标签包含的内容从一个不同的Web站点或FTP服务器。

       同标签的区别:只能包含同一个Web应用中的文件,而标签可以包含其他Web应用中

的文件,甚至是网络上的资源。

       标签具有以下属性:

       

       标签的用法:

       可以把其他静态或动态文件包含到本JSP页面。

       url属性指的是被导入资源的URL路径;

       context属性指的是相同服务器下其他Web工程,必须以"/"开头;

       var属性指的是以String类型存入被包含文件的内容;

       scope属性指的是var变量的JSP范围;

       charEncoding属性指的是被导入文件的编码格式 ;

       varReade属性指的是以Reader类型存储被包含文件内容;

       context属性引入的内容是webapps下的其他的Web project。

       实例代码:








JSTL使用


     JSTL标签的使用
     
     
     
     
            
     
     
     
     
            
     
     
     
     
            
     
     
     
     
     
            
     
        

       结果:

       

        

    标签和标签

        标签将浏览器重定向到一个备用URL提供自动URL重写,它支持上下文相关的URL和支持

标签。

       标签具有以下属性:

       

       标签允许适当的URL请求参数到指定的URL和任何必要的URL编码。在一个标签的name

属性表示参数的名称,value属性表示的参数值。

       标签具有以下属性:

       

       标签的用法:

        该标签用来实现请求的重定向,同事可以在url中加入指定的参数;

       url属性用于指定重定向页面的地址,可以是一个String类型的绝对路径或相对地址;

       context属性用于导入其他Web应用中的页面。

       实例:

       

       test.jsp页面代码:

       

       结果:

       

   标签

       标签格式化成一个字符串格式的URL,并将其存储到变量中。这个标签会在必要时自动执行URL重写。

 var属性指定的变量将包含格式化的URL。JSTL url标签只是response.encodeURL()方法的调用一个替代方法。URL

标记提供的唯一的真正的优势是正确的URL编码,包括子标签指定的任何参数。

       标记具有以下属性:

       

       标签的用法:

       该标签用于动态生成一个String类型的URL,可以同标签共同使用,也可以使用HTML中的标签

实现超链接。

       var属性是将url路径存储在的变量中;

       value属性表示url路径值;

       scope属性是var变量的范围。

       实例:

       

       结果:

       

    JSTL函数

       需要在页面添加:

 
 

       先来介绍几个简单常用的JSTL函数:

       1)使用fn:contains()函数判断输入的字符串是否包含指定的子串。

       使用fn:contains()函数的语法如下:

boolean contains(java.lang.String, java.lang.String) 

       2)fn:containsIgnoreCase()函数判断输入的字符串是否包含指定的子串,搜索时忽略大小写。

       使用fn:containsIgnoreCase()函数的语法如下:

 boolean containsIgnoreCase(java.lang.String, java.lang.String)

       3)fn:endsWith()函数判断输入的字符串是否与指定的后缀结束。

       使用fn:endsWith()函数的语法如下所示:

boolean endsWith(java.lang.String, java.lang.String)

       4)fn:startsWith() 函数判断输入的字符串是否为指定的子串开始。

       使用fn:startsWith() 函数有以下语法:

 boolean startsWith(java.lang.String, java.lang.String)

       5)fn:indexOf()函数返回在字符串中指定的子串的索引。

       使用fn:indexOf() 函数的语法如下:

int indexOf(java.lang.String, java.lang.String)

       6)fn:escapeXml()函数转义字符,可以解释为XML标记。

       使用fn:escapeXml() 函数的语法如下:

java.lang.String escapeXml(java.lang.String))

       实例代码:










JSTL使用


    JSTL函数的使用
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

       结果:

       

       其他的JSTL函数:

       

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.1103s