JSTL;JSP 标准标签库

一、 简介

       Java Server Pages Standard Tag Libray(JSTL):JSP 标准标签库,是一个定制标签类库的集合,用于解决一些常见的问题,例如迭代一个映射或者集合、条件测试、XML 处理,甚至数据库和访问数据库操作等。

       以下我们只讨论 JSTL 中最重要的标签,迭代集合以及格式化数字和日期几个标签.

      核心标签库:http://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。

      格式化标签库:http://java.sun.com/jsp/jstl/fmt 用来格式化显示数据的工作,比如:对不同区域的日期格式化等

     前缀可以是任意内容,遵循规范可以使团队中由不同人员编写的代码更加相似;所以,建议使用事先设计好的前缀。此时需要导入两个 jar 包

直接放入 Tomcat 的 lib 目录下即可.

二.jstl的使用

1.  条件动作标签

     条件动作指令用于处理页面的输出结果依赖于某些输入值的情况,在 Java中是利用 if、 if…else 和 switch 语句来进行处理的。在 JSTL 中也有 4 个标签可以执行条件式动作指令:if、 choose、when 和 otherwise.

     步骤:

    1、导入jstl标签库所需要的jar包  (jstl.jar、standard.jar)
    2、在jsp页面引入指定的库    
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    3、使用标签库
        

实例:

 <%
 	request.setAttribute("num", 1);
 %>
 
 
 	

Hello JSTL!

<% request.setAttribute("score", 50); // 获取域对象中的值 Integer score = (Integer)request.getAttribute("score"); // 条件判断 if (score < 60) { %>

不及格!

<% } else if (score >= 60 && score < 80) { %>

还可以!

<% } %>

1)if  标签

if 标签
        if 标签先对某个条件进行测试,如果该条件运算结果为 true, 则处理它的主体内容.
        测试结果保存在一个 Boolean 对象中,并创建一个限域变量来引用 Boolean 对象。
        可以利用 var 属性设置限域变量名,利用 scope 属性来指定其作用范围。
        if 的语法有两种形式:
            没有主体内容
                
            有主体内容
                
                    要执行的代码
                

            常用属性:
                test:返回boolean类型的条件,一般操作的都是域对象中的值
                var:用来定义接收返回值的变量,但是该变量是存在域对象中的
                scope:var设置的变量名所存放的域范围page\request\session\application 
                
            注:在jstl中没有else标签,如果出现需要else的情况,可以使用两个if,设置相反的;两个条件来实现
实例:

<%
	request.setAttribute("num", 0);

	request.setAttribute("score", 50);
%>

 ${pageScope.flag }


num比0大

num比0小




不及格!

继续努力哦!

哎哟不错哦!

学霸!

2)  choose 、when  和 otherwise 

choose、when 和 otherwise 标签
        1、choose标签中至少包含一个when标签,可以没有otherwise标签 (Illegal "choose" without child "when" tag)
        2、choose标签中只能有when标签和otherwise标签(Illegal child tag in "c:choose" tag: "c:if" tag)
        3、when标签和otherwise标签可以包含其他标签
        4、choose标签和otherwise标签没有属性,when标签必须有test属性
        5、otherwise标签必须放在最后一个when标签之后 (Illegal "c:when" after "c:otherwise" tag in "c:choose" tag.)
        6、当所有的when标签的条件不成立时,才会执行otherwise标签

实例:

 <%
	 request.setAttribute("score", 50);
 %>
 
 
 	
 		

不及格!

继续努力!

哎哟不错哦!

你是个学霸!

2.  迭代标签

forEach标签
        1、遍历主体内容多次 
            
        

 	
 		${i }  
 	


        2、遍历集合、map等
            

        常用属性:
            items:需要被遍历的对象(可以是集合、map等,都是存放在域对象中的数据)
            var:限域变量名,用来每次被遍历到的成员

实例:

 	<%
	 	List list = new ArrayList();
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		request.setAttribute("mylist", list);
		
		Map map = new HashMap();
		map.put("aaa", "111");
		map.put("bbb", 2222);
		map.put("ccc-a", 333);
		request.setAttribute("mymap", map);
 	%>
 	
 	
 		${item }   - 当前下标:${p.index } - 当前次数:${p.count } - 是否是第一次被循环:${p.first } - 是否是最后一次被循环:${p.last } 

${item } - ${item.key } - ${item.value }

3.  格式化动作指令

         JSTL 提供了格式化和解析数字和日期的标签,我们讨论里面有:formatNumber、formatDate、parseNumber 及 parseDate。

1) formatNumber  标签

    formatNumber 标签
        formatNumber 标签 该标签用指定的格式或精度来格式化数字.
        标签有如下属性: 
            使用该标签时,有两种语法:
                无主体内容
                    

            常用属性:
                value:要被格式化的数值
                type:被格式化的类型
                    number数值型
                    percent百分比类型
                    currency货币类型
                var:限域变量名,用来接收格式化好的返回值;如果设置var属性,则值不会再输出,需要使用el表达式输出var设置的值

实例:


 


${num }

10
10 ${num2 }

2) formatDate  标签

        使用指定的风格或模式格式化日期和时间,标签有如下属性:

JSTL;JSP 标准标签库_第1张图片

     pattern 属性指定更精确的处理日期:

JSTL;JSP 标准标签库_第2张图片

实例:

<%
 	request.setAttribute("mydate", new Date());
 %>
 
 ${mydate } 






${date1 }

3)parseDate 标签

parseDate 标签
            此标签为指定区域解析日期和时间的字符串表示法。即解析一个代表着日期或时间的字 符串。两种形式:

1.没有主体内容:

2.使用主体内容:

实例:

	 <%
	 	request.setAttribute("date1", "2019-5-6 17:33:58");
	 	request.setAttribute("date2", "21-05-2017");
	 	request.setAttribute("date3", "2019-5-6");
	 %>
	 
	 ${date1 }
${date2 }




4)parseNumber 标签

parseNumber 标签
        利用 parseNumber 标签可以将数字、货币或百分比的字符串表示法解析成指定语言环 境的数字。即解析一个代表着数字,货币或百分比的字符串。两种语法形式:

1.没有主体内容:

2.使用主体内容:



      ${balance}

实例:

  

 

 

 

 

 

你可能感兴趣的:(后端,JSP,JSTL,JSP标签库)