- _nosay
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>