JavaWeb---JSTL标签库(core标签库)

1,JSTL的介绍

JSTL是Apache对EL表达式的扩展,JSTL依赖EL表达式。它是标签语言,与JSP动作标签差不多,但是不能直接使用,需要导包(JSTL1.2.jar),以及制定标签库。

2,JSTL标签库(四大库)

(1)core:核心标签库,重点!

(2)fmt:格式化标签库,学习其中的两个标签。日期和数字的格式化。

(3)sql:数据库标签和XML:xml标签库不学了,过时了。

3,使用taglib指令导入标签库
除了JSP动作标签外,使用第三方的标签库都需要以下两点:

(1)导包:例如:JSTL1.2.jar;

(2)在使用标签库的页面使用taglib指令导入标签库。

例如:<%@taglib prefix="c" uri=http://java.sun.com/jstl/core" %>

prefix="c":指定标签库的前缀,这个前缀是自定义的,一般使用core标签库时都是用c这个前缀;

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

4,核心标签库(core)的常用标签:c标签

(1)out和set:

:输出

:输出aaa字符串常量

:作用等同于${aaa};

:如果aaa变量不存在的话,输出“xxx”

也可以使用escapeXml="false"达到不转义的作用。

标签的默认域为pageContext.

在session中添加name为“a”,value为“hello”的数据。

       <%pageContext.setAttribute("a","pageContext"); %>
    <%request.setAttribute("a", "request"); %>
    <%session.setAttribute("a", "session"); %>
    <%application.setAttribute("a", "application"); %>
     ${a}
    
    
    

(2)remove:删除域变量,var:变量名;scope:如果不给出scope,表示删除所有域中的该名称变量;如果给出了域,则只删除该作用域的相应变量

(3)url

--》value:指定一个路径,他会在路径前面自动添加项目名;

--》子标签:  可以对参数进行url编码。

--》var:指定变量名,一旦添加了这个属性,那么url标签就不会自动输出到页面,而是把生成的url保存到域中。

--》scope:它与var一起使用,用来保存url.

${pageContext.request.contextPath}
                                                                       首页


 
  

(4)if:对应java中的if语句

...,当test值为真时,执行标签体内容。

 
    
    	
    

(5)choose:对应java中的if(){}else if(){}else{},,条件语句多分支


  	
    
    
    	

${param.score }
分数:${param.score }
姓名:${param.name }
错误的分数:${score1 } A B C D E

(6)forEach:用来循环遍历数组、集合。可用计数方式来循环

--》java中计数方式:

for(int i=0;i<=10;i++)

{

    .........

}

--》核心标签库中:

           ${i}


说明:

(1)var:循环变量

(2)begin:设置循环变量从几开始

(3)end:设置循环变量到几结束

(4)step:设置步长,默认为1。

------------------------------------------------------------------------------------------------------------

循环遍历数组、集合(List、Map)

       ${str}


等同于:

for(String str:strs){

System.out.println(str);

}

说明:

(1)var:把数组或者集合中的每个元素赋值给var指定的变量

(2)items:指定要循环谁,可以是一个数组或集合

-------------------------------------------------------------------------------------------------------------------

forEach循环状态:

可以通过varStatus来获取forEach循环状态。

${vs.count}  ${vs.index}  ${vs.first}  ${vs.last}  ${vs.current}


      <%
      	Map map=new LinkedHashMap();
      	map.put("nember", "001");
      	map.put("name", "张三");
      	map.put("sex", "男");
      	map.put("age", "20");
      	
      	pageContext.setAttribute("stu", map);
      	
       %>
       
       		
       		
       			
       			//
       		
       	${vs.index }...${vs.count }...${vs.first }...${vs.last }...${vs.current }	
       


你可能感兴趣的:(java,javaWeb,JSTL,core)