jstl标签库

一、jstl标签库

jstl是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言。
jstl不是JSP内置的标签,需要导包。

1.jstl四大标签库

  • core
    核心标签库,重点
  • fmt
    格式化标签库,只需要学习两个标签即可;
  • sql
    数据库标签库,不需要学习了,它过时了;
  • xml
    xml标签库,不需要学习了,它过时了。

2.导入标签库
除了JSP动作标签外,使用其他第三方的标签库都需要
a.导包
b.在使用标签的JSP页面中使用taglib指令导入标签库

导入JSTL的core标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
  • prefix="c"
    指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c
  • uri="http://java.sun.com/jstl/core"
    指定标签库的uri,它不一定是真实存在的网址,但它可以让JSP找到标签库的描述文件

二、core标签库常用标签

1.out和set


  • 输出
    • alue:可以是字符串常量,也可以是EL表达式
    • default:当要输出的内容为null时,会输出default指定的值
    • escapeXml:默认值为true,表示转义!
举例

  • 设置(创建域的属性)
    • var:变量名
    • value:变量值,可以是EL表达式
    • scope:域,默认为page,可选值:page、request、session、application
举例

2.remove
删除域变量

  • var:变量名
  • scope:如果不给出scope,表示删除所有域中的该名称的变量;如果指定了域,那么只删除该域的变量。
举例

3.url
路径

  • value:指定一个路径!它会在路径前面自动添加项目名。
  • : 子标签,用来给url后面添加参数
  • var:指定变量名,一旦添加了这个属性,那么url标签就不会再输出到页面,而是把生成url保存到域中。
  • scope:它与var一起使用,用来保存url。
举例

4.if
if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行



  

5.choose
choose标签对应Java中的if/else if/else结构。when标签的test为true时,会执行这个when的内容。当所有when标签的test都为false时,才会执行otherwise标签的内容。



  错误的分数:${score }

  A级
  B级
  C级
  D级
  E级

6.forEach
forEach循环标签

  • 使用循环变量,指定开始和结束值
    类似for(int i = 1; i <= 10; i++) {};

    • var:循环变量
    • begin:设置循环变量从几开始。
    • end:设置循环变量到几结束。
    • step:设置步长!等同与java中的i++,或i+=2。step默认为1

例如:

例1:
 
 
    


 
  


  • 循环遍历集合
    类似for(Object o : 集合);

    • items:指定要循环谁,它可以是一个数组或一个集合
    • var:把数组或集合中的每个元素赋值给var指定的变量。
<%
String[] names = {"zhangSan", "liSi", "wangWu", "zhaoLiu"};
pageContext.setAttribute("ns", names);
%>

  

遍历List

<%
 List names = new ArrayList();
 names.add("zhangSan");
 names.add("liSi");
 names.add("wangWu");
 names.add("zhaoLiu");
 pageContext.setAttribute("ns", names);
%>
  
  

遍历Map

<%
 Map stu = new LinkedHashMap();
 stu.put("number", "N_1001");
 stu.put("name", "zhangSan");
 stu.put("age", "23");
 stu.put("sex", "male");
 pageContext.setAttribute("stu", stu);
%>
 
  
  • varStatus(循环状态)
    这个属性用来指定接收“循环状态”的变量名
    • count
      int类型,当前以遍历元素的个数;
    • index
      int类型,当前元素的下标;
    • first
      boolean类型,是否为第一个元素;
    • last
      boolean类型,是否为最后一个元素;
    • current
      Object类型,表示当前项目。
 
  第一行:
  最后一行:
  
  
  

三、fmt标签库常用标签

fmt标签库是用来格式化输出的,通常需要格式化的有时间和数字

  • 格式化时间
    • value:指定一个Date类型的变量
    • pattern:用来指定输出的模板!例如:yyyy-MM-dd HH:mm:ss
<%@ taglib prefix=*"fmt"* uri=*"http://java.sun.com/jsp/jstl/fmt"* %>
......
<%
 Date date = new Date();
 pageContext.setAttribute("d", date);
%>


  • 格式化数字
<%
  double d1 = 3.5;
  double d2 = 4.4;
 pageContext.setAttribute("d1", d1);
 pageContext.setAttribute("d2", d2);
%>

你可能感兴趣的:(jstl标签库)