JSTL标签库

什么是JSTL标签库?


Java Standard Tag Lib(java标准的标签库)
JSTL标签库通常结合EL表达式一起是使用。目的是让JSP中的Java代码消失
标签是写在jsp当中的,但实际上最终还是要执行对应的Java程序(Java程序在jar包当中)
使用步骤:
①引入JSPL标签库对应jar包
不同版本的Tomcat引用的jar包不同
在idea当中引入?
在lib文件夹当中和sqljar包在同一个地方
什么时候将jar包放到lib目录下:tomcat服务器中没有的
②在JSP中引入要使用的标签库
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入标签库--%>
<%--核心标签库
 prrfix="这里随便起一个名字就行了,核心标签库,大家默认叫做c"
--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%--格式化标签库,专门负责格式化操作的--%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>http

<%--sql标签库--%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
③在需要使用标签的地方使用即可。表面使用的是标签,实际上用的还是Java程序
------------------------------------------------------------------------------------------------
以上的uri路径实际上指向了一个xxx.tld文件。
tld文件实际上是一个xml配置文件。
在tld文件中描述了”标签“和”Java类“之间的关系
以上核心标签库对应的tld文件是:c.tld文件。它在哪里。
在jakarta.servlet.jsp.jstl-2.0.0.jar里面有一个META-INF目录下,有一个c.tld文件。
配置文件tld解析:

对该标签的描述
catch标签的名字
xxxxxxxxxxxxxxxxxx标签对应的Java类
JSP标签体当中可以出现的内容,如果是JSP,就表示标签体当中可以出现符合JSP所有语法的代码。例如EL表达式

     对这个属性的描述
     var属性名
     falsefasle表示该属性不是必须的。true表示该属性是必须的
      fasle这个描述说明了该属性是否支持EL表达式。false表示不支持,true表示支持


--------------------------------------------------------------------------------------------------------
<%--使用core标签库中的forEach标签。对List集合进行遍历--%>
<%--var后面的名字是随意的。var属性代表的是集合中的每一个元素。--%>

name:${s.name},age:${s.age}

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

<%
  //创建list集合
        List students=new ArrayList<>();

        //创建student对象
        Student s1=new Student("110","警察");
        Student s2=new Student("120","救护车");
        Student s3=new Student("119","消防车");
        //将student对象添加到list集合中去
        students.add(s1);
        students.add(s2);
        students.add(s3);
        //将list集合存储到request域当中
        request.setAttribute("students",students);
%>
<%--需求:将list集合当中的元素遍历。输出学生信息到浏览器--%>
<%
 List stus=(List)request.getAttribute("students");
 //编写for循环代码
    for (Student stu:stus){

    %>
        age:<%=stu.getAge()%>, name:<%=stu.getName()%>
<%
    }
%>

<%--使用core标签库中的forEach标签。对List集合进行遍历--%> <%--var后面的名字是随意的。var属性代表的是集合中的每一个元素。--%> name:${s.name},age:${s.age}

------------------------------------------------------------------------------------------
<%--核心标签库中的if标签--%>
<%--test属性是必须的。test属性支持EL表达式。test属性值只能是Boolean类型。--%>
<%--if标签还有一个var属性,不是必须的--%>
<%--if标签还有一个Scope属性,用来指定var的存储域。不是必须的--%>
<%--scope有四个值可以选:page\request\session\application--%>
<%--v变量中存储的是test属性的值,将test这个布尔值保存到后面的scope对应的域中--%>

欢迎你给您${param.username}



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

    ${i}


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

<%
    //创建list集合
    List students=new ArrayList<>();

    //创建student对象
    Student s1=new Student("110","警察");
    Student s2=new Student("120","救护车");
    Student s3=new Student("119","消防车");
    //将student对象添加到list集合中去
    students.add(s1);
    students.add(s2);
    students.add(s3);
    //将list集合存储到request域当中
    request.setAttribute("students",students);
%>
<%--var="s"这个表示得是集合中的每个student对象--%>
<%--varStatus="这个属性表示var得状态对象,这里是一个Java对象,这个Java代表了var的状态"--%>
<%--varStatus="这个名字是随意的"--%>
<%--varStatus这个状态对象有count属性。可以直接使用。--%>

    <%--varStatus的count的值从1开始,以1递增,主要是用于编号、序号--%>
    编号:${stuStatus.count},name:${s.name},age:${s.age}



-----------------------------------------------------------------------------------
<%--if(){
}else if(){
}else if(){}
--%>
<%--这个嵌套格式不能随便改--%>


    
         青少年
    

    
        青年
    

    
        中年
    

    
        老年
    


-----------------------------------------------------------------------------------------
在前端HTML代码中,有一个标签,叫做base标签,这个标签可以设置整个网页的基础路径
这不是Java的语法,也不是JSP的语法。是HTML中的一个语法。HTML中的一个标签。通常出现在head标签中
设置这个网页的基础路径是:http://localhost:8080/oa/

只作用于不以/开头的路径
自动加在不以/开头的路径的前面
注意:对JS代码不一定起作用


   


 

你可能感兴趣的:(javascript)