一.JSTL
1.JSTL的使用
1)引入标签库的jar包(每个项目拷贝一次)
jstl.jar和standard.jar
2)在jsp页面通过taglib指令导入指定的类库(每个jsp页面需要单独引用)
<%@taglib uri="要引入的标签库的路径" prefix="标签库的前缀" %>
前缀可以自定义,程序员习惯设置为指定的前缀名
core核心库:c
fmt格式化标签库:fmt
注:jstl标签操作的一般都是域对象
2. if标签
格式:
无主体内容:<c:if test="条件" var="限域变量名" scope="域对象的范围 page|request|session|application"></c:if>
有主体内容:
<c:if test="条件" var="限域变量名" scope="域对象的范围 page|request|session|application">
主体内容
</c:if>
常用属性:
test:判断的条件,返回true或false,操作的是域对象的值;必须要设置的属性
var:限域变量名,存在域对象中的变量名,可以通过el表达式获取到该变量名对应的值
scope:限域变量名的域范围,四个范围 page|request|session|application
注:if标签没有对应else,所以如果需要做else判断,需要设置两个完全相反的if条件判断
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>if标签</title>
</head>
<body>
<%
request.setAttribute("str", "a");
request.setAttribute("str2", "a");
%>
<%-- <c:if test="${1==1 }" var="flag" scope="request"></c:if> ${flag } <br>
<c:if test="${1 == '1' }" var="flag2" ></c:if>${flag2 } <br>
<c:if test="${'1' == '1' }" var="flag3" ></c:if>${flag3 } <br>
<c:if test="${'a' eq 'a' }" var="flag4" ></c:if>${flag4 } <br>
<c:if test="${'1==1' }" var="flag5" ></c:if>${flag5 } <br> --%>
<c:if test="${str == str2 }" var="flag6" ></c:if>${flag6 } <br>
<br><br>
<c:if test="${str == str2 }">
</c:if>
<hr> <br>
<%
request.setAttribute("num", 80);
%>
<c:if test="${num > 60 && num < 80 }">
<div style="background-color: blue;">
<h2>哎哟不错哦!</h2>
</div>
</c:if>
<c:if test="${num >= 80 }">
<div style="background-color: green;">
<h2>你很棒棒哦!</h2>
</div>
</c:if>
<hr>
<%
// 获取域对象中的值
Integer num = (Integer) request.getAttribute("num");
// 条件判断
if (num < 60) {
%>
<div style="background-color: purple;">
<h2>你个渣渣!不及格ÿ