JSP学习笔记(3)——JSTL 标签库

JSP Standard Tag Lib,名为JSP标准标签库,设计的目的主要用来方便我们将数据输出,而不是使用JSP中的语法<% %> <%= %> <%! %>

平常使用的话,我们会在JSP在嵌套HTML代码来实现数据的获取,比如说把一个list中的内容转换为表格显示,需要使用到循环,还要在循环中嵌套HTML代码,看起来很不优雅,而且代码不好阅读。

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

  • 核心标签 c.tld
  • 格式化标签 f.tld
  • SQL 标签 s.tl
  • XML 标签 x.tld
  • JSTL 函数

标签库可以和EL表达式联用

核心标签库 c.tld

JSP学习笔记(3)——JSTL 标签库_第1张图片

set

相当于setAttribute方法

语法:

属性 描述 是否必要 默认值
value 要存储的值 主体的内容
target 要修改的属性所属的对象
property 要修改的属性
var 存储信息的变量
scope var属性的作用域 Page

scope属性有四种选择:page,requset,session,application

//下面的标签相当于pageContext.setAttribute("html");


out

语法:

属性 描述 是否必要 默认值
value 要输出的内容
default 输出的默认值 主体中的内容
escapeXml 是否忽略XML特殊字符 true
//html是上面set的内容
//输出

hello

,忽略了转义 //输出显示一级标题hello

if

标签判断表达式的值,如果表达式的值为 true 则执行其主体内容

语法:


   ...
属性 描述 是否必要 默认值
test 条件
var 用于存储条件结果的变量
scope var属性的作用域 page

   

hello以h开头

//if-else语句

hello以h开头

hello不以h开头

remove

标签用于移除一个变量(删除数据),可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。

语法:

//相当于xx.removeAttrbute

choose



    
        

z混日子

还算凑合

富有

import

相当于指令 <%@ include
菜鸟 JSTL-import

redirect

重定向

url

用于生成url,优点是可以把url存在变量中,之后便于引用

菜鸟 JSTL——url

param

可作为上面import,redirect,url中的子标签,表明带参

forEach

语法:

属性 描述 是否必要 默认值
items 要被循环的信息
begin 开始的元素(0=第一个元素,1=第二个元素) 0
end 最后一个元素(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 代表循环状态的变量名称

    ${item}
    staus.index 当前的下标 0开始
    staus.count 从1开始

forTokens

属性和forEach用于,不过多了一个属性delims,表明分隔符,有多个分隔符使用空格隔开



    

${item}

格式化标签

引用:

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

requestEncoding

使用标签来指定字符集,用于解码来自表单的数据。在字符集不是ISO-8859-1时必须使用这个标签。

formatNumber

属性 描述 是否必要 默认值
value 要显示的数字
type NUMBER,CURRENCY,或 PERCENT类型 Number
pattern 指定一个自定义的格式化模式用与输出
currencyCode 货币码(当type="currency"时) 取决于默认区域
currencySymbol 货币符号 (当 type="currency"时) 取决于默认区域
groupingUsed 是否对数字分组 (TRUE 或 FALSE) true
maxIntegerDigits 整型数最大的位数
minIntegerDigits 整型数最小的位数
maxFractionDigits 小数点后最大的位数
minFractionDigits 小数点后最小的位数
var 存储格式化数字的变量 Print to page
scope var属性的作用域 page

fromatData

属性 描述 是否必要 默认值
value 要显示的日期
type DATE, TIME, 或 BOTH date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT default
pattern 自定义格式模式
timeZone 显示日期的时区 默认时区
var 存储格式化日期的变量名 显示在页面
scope 存储格式化日志变量的范围 页面

数据库连接

引用:

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
标签 描述
指定数据源
运行SQL查询语句
运行SQL更新语句
将SQL语句中的参数设为指定值
将SQL语句中的日期参数设为指定的java.util.Date 对象值
在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行

连接数据库

查询


        select * from employee  where ename like ? and sal>=? and hiredate
        
        1000.0
        
    

注意:结果集对象的类型不是java.sql.ResulSet 的实例,而是javax.servlet.jsp.jstl.sql.Result 的实例

获取数据


        
            ${emp.empno}
            ${emp.ename}
            ${emp.job}
            ${emp.mgr}
            
             
            ${emp['comm']}
            ${emp['deptno']}
        
      

自定义JSTL标签

1. 定义类

定义一个类,继承与javax.servlet.jsp.tagext.SimpleTagSupport(简单标签的支持类,不允许标签内有主体内容)

重写doTag方法,标签解析之后会自动执行此方法

类中的成员属性名需要与标签的属性名一致,成员属性需要有get/set方法

获得JSP中的out对象:

JspContext jspcontext = this.getJspContext();
JspWriter out = jspcontext.getOut();
out.println(s);

2. 编写tlc文件

在web-inf目录下新建tld文件,文件名随意。tlc文件主要说明标签如何使用,是由哪一个类实现和一些标签的属性配置。





    1.0
    
    lq
    http://www.lanqiao.com/tag

    
        完成日期的格式化输出
        
        printDate
        
        com.lanqiao.tag.PrintDateTag
        
        empty
        
            date
            
            false
            
            true
            java.util.Date
        
        
            pattern
            
            false
            
            false
            java.lang.String
        
    


3. 引用自定义标签

jsp中使用<%@ taglib prefix=”Short-Name” uri=”uri”%>指令引入标签库才能使用。

4. 使用

request.setAttribute("now",new Data());

你可能感兴趣的:(JSP学习笔记(3)——JSTL 标签库)