Jsp——JSTL标签库(core、fmt)

 


 
     
        
        
     

 

 

什么是JSTL

 

JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!

JSTL标签使用以来非常方便,它与JSP动作标签一致,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

 

JSTL标签库

JSTL一共包含四大标签库:

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

使用taglib指令导入标签库

除了JSP动作标签外,使用其他第三方的标签库都需要:

1、导包(jstl.jar、standard.jar)

2、在使用标签的JSP页面中使用taglib指令导入标签库;<%@   taglib   prefix="c"   uri="http://java.sun.com/jstl/core"%>

  prefix="c":指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c;

  url="http://java.sun.com/jstl/core":指定标签库的url,它不一定是真实存在的网址,但它可以让JSP找到标签库的描述文件;

core标签库常用标签

1)out

  语法:

  可选属性:Default:默认值,escapeXml:当escapeXml为false,不会转换“<”,“>”。

这可能会受到JavaScript攻击,与EL表达式的结果一样,为true,转换“<”、“>”,浏览器不会解析为js代码。默认值为true



2)Set标签:往作用域中存放数据,等同于setAttribute()
  语法:
  可选属性:scope:往哪个作用域中存放数据,默认page域

3)remove删除域中数据,等同于removeArribute()

  语法:表示全域删除

  可选属性:scope:删除指定域

4)Url构建url

  语法:只要以“/”开头,自动加/项目名


 
     
        
        
     

 5)if标签  条件标签,没有esle

 语法:

    //...其他标签

    

if test="${3>2}">
     

3大于2

if>

6)Choose  等同于if  esle  if  esle  if...esle

   Choose标签对应Java中的if/else  if/else结构。when标签的test为true时,会执行这个when的内容。

当所有when标签的test都为false时,才会执行otherwise标签的内容。



    错误的分数:${score }
    A级
    B级
    C级

7)forEach标签

  A.普通for循环,类似for(int i=0;i<10;i++)

  语法: step:步长,默认值1,每次加油


     ${i } 

  B.增强for循环,类似for(Object o:集合)

遍历集合或数组方式:
<%
  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);
%>

    

  forEach标签还要一个属性:varStatus,这个属性用来指定接收“循环状态”的变量名,列如:,这时就可以使用vs这个变量来获取循环的状态。

  • count:int类型,当前以遍历元素的个数;
  • index:int类型,当前元素的下标;
  • first:boolean类型,是否为第一个元素;
  • last:boolean类型,是否为最后一个元素;
  • current:Object类型,表示当前项目;

    if test="${vs.first }">第一行:if>
    if test="${vs.last }">最后一行:if>
    
    
    

8)重定向标签

语法:


<%--   --%>
<%--  
 
     
     
  --%>

9)转发

转发:请求转发

 

fmt标签库

  必须先导入:<%@ raglib url="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

 1)日期格式化

语法:

  value:值

  pattern:格式化字符串

 

<% Date now = new Date();
    request.setAttribute("now", now);  %>

 

2)数字格式化

 

  保留多少位数,四舍五入

  格式字符串:0表示任意字符串,小位数位数不够,使用0补位——0.00-->12.30

        #表示任意字符串,小数位位数不够,不位使用0补位——0.00-->12.3

<% double d = 12.3;
    request.setAttribute("d", d); %>

 

你可能感兴趣的:(Jsp——JSTL标签库(core、fmt))