JSTL的学习记录

2017-11-22 16:41:36

    JSTL简介

    JSTL(JSP Standard Tag Library),JSP标准标签库,可能嵌入在jsp页面中使用标签的形式完成业务逻辑等功能,jstl出现的目的和el一样也是要代替jsp页面中的脚本代码.jstl标准标签库有5个子库,但随着发展,目前常使用的是它的核心库.


    五个字库分别为:

    标签库

        core

        L18N

        SQL

        XML

        Functions

    标签库的URL

        http://java.sun.com/jsp/jstl/core

        http://java.sun.com/jsp/jstl/fmt

        http://java.sun.com/jsp/jstl/sql

        http://java.sun.com/jsp/jstl/xml

        http://java.sun.com/jsp/jstl/functions

    前缀

        c

        fmt

        sql

        x

        fn

    下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

    下载后解压,在lib目录下可以看到两人个JAR文件,分别为jstl.jar和standard.jar.其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

    下载完成后,需要在项目下创建lib目录

    1.首先,在IDEA下创建lib目录用来存放第三方的jar文件

    2.找到lib目录下的standard.jar和jstl.jar文件,复制文件,把它们粘贴到你的WEB_INF/lib目录下

    配置DTD文件:idea它不认识这个标签,所以需要在设置里进行添加.

    1.选择File->Setting在Settin下找到

        languages&Frameworks->Schemas ad DTDs,在右边的External Schemas and DTDs框下点击+,然后在URI中填入:http://java.sun.com/jsp/jstl/core

    2.在explorer中找到解压文件的tld目录下的c.tld文件,并选择

    然后只需要在jsp文件中引入就可以正常使用了

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

    JSTL的if标签

    <c:if>标签专门用于完成JSP界面中的条件判断

    <c:if test="表达式">

        //表达式成立执行语句

    </c:if>

    其中test是返回boolean的条件.

    一个简单的if demo

<%--
  Created by IntelliJ IDEA.
  User: nosay
  Date: 17-11-22
  Time: 下午4:20
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--使用JSTL的时候需要配合EL表达式--%>
<c:if test="${1+1==2}">
    表达示成立,执行内部语句
</c:if>
</body>
</html>

    JSTL的forEach标签

    <c:forEach>用来热循环遍历集合对象中的元素,如List,Map,数组等

    和java代码中的for循环一样,它也有两种形式

    如下

<%@ page import="net.zixue.bean.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: nosay
  Date: 17-11-22
  Time: 下午4:20
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    List<User> list = new ArrayList<>();
    User user1 = new User();
    user1.setName("小强");
    user1.setSex("男");
    User user2 = new User();
    user2.setName("小丽");
    user2.setSex("女");
    list.add(user1);
    list.add(user2);
//    for (int i = 0; i < list.size(); i++) {
//        System.out.println(list.get(i).getName());
//    }
    for (User user : list) {
        System.out.println(user.getName());
    }
    request.setAttribute("list",list);
%>
<c:forEach begin="0" end="${list.size()-1}" var="i">
    ${list[i].name}
</c:forEach>
<c:forEach items="${list}" var="user">
    ${user.name}
</c:forEach>
</body>
</html>