javascript
006_JSTL
一. JSTL介紹
1. JSTL全稱: JSP Standard Tag Library, jsp標(biāo)準(zhǔn)標(biāo)簽庫(kù)。
2. 簡(jiǎn)化jsp的代碼編寫。替換<%%>寫法。一般與EL表達(dá)式配合。
3. 使用JSTL
3.1.?使用JSTL需要先導(dǎo)入jstl.jar和standard.jar這2個(gè)jar包到工程的WebContent/Web-Inf/lib目錄下。??
3.2. 在jsp頁(yè)面上, 使用taglib 指令, 來(lái)引入標(biāo)簽庫(kù)。
3.3. 注意: 如果想支持 EL表達(dá)式, 那么引入的標(biāo)簽庫(kù)必須選擇1.1的版本, 1.0的版本不支持EL表達(dá)式。1.1的版本如下所示:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>4. 常用標(biāo)簽
4.1. 存值到某個(gè)域中: <c:set></c:set>
4.2. 條件判斷標(biāo)簽: <c:if test=""></c:if>
4.3. 遍歷集合標(biāo)簽: <c:forEach></c:forEach>
二. JSTL實(shí)例
1. 新建一個(gè)名稱為JSTL的Web工程
2. 新建一個(gè)index.jsp, 使用set標(biāo)簽
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>jstl set</title></head><body><!-- var聲明一個(gè)對(duì)象value對(duì)象的值scope存儲(chǔ)的作用域, 默認(rèn)是pageContext作用域--><c:set var="name" value="zhangsan" scope="session"/>${name}</body> </html>3. 新建一個(gè)jstl_if.jsp, 使用if標(biāo)簽, 做boolean判斷, jstl沒(méi)有else標(biāo)簽。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>jstl if</title></head><body><!-- 向page作用域中存儲(chǔ)一個(gè)age對(duì)象, 值為18 --><c:set var="age" value="18" scope="page"/><!-- 向session作用域中存儲(chǔ)了一個(gè) bigAgeResult對(duì)象, 值為test屬性的結(jié)果--><c:if test="${age > 18}" var="bigAgeResult" scope="session">年齡大于18</c:if><c:if test="${age <= 18}" var="littleAgeResult" scope="session">年齡小于等于18</c:if><br/>${sessionScope.bigAgeResult }</body> </html>4. 使用forEach標(biāo)簽遍歷集合
4.1. 新建一個(gè)User.java
package com.lywgames.bean;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;public User(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }4.2. 新建一個(gè)jstl_foreach.jsp, 使用forEach標(biāo)簽遍歷集合
<%@ page import="java.util.List"%> <%@ page import="java.util.ArrayList"%> <%@ page import="com.lywgames.bean.User"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>jstl forEach</title></head><body><!-- begin起始值end結(jié)束值step步長(zhǎng)var不值存的一個(gè)對(duì)象 --><c:forEach begin="1" end="10" var="value" step="2">${value}</c:forEach><br/><%List<User> users = new ArrayList<User>();users.add(new User("張三", 18));users.add(new User("小花", 16));session.setAttribute("users", users);%><!-- items使用EL表達(dá)式訪問(wèn)域?qū)ο?--><c:forEach var="user" items="${users}">[${user.name},${user.age}]<br/></c:forEach></body> </html>?
總結(jié)