JavaEE页面技术之JSTL标签&小案例

tech2026-08-04  1

JavaEE页面技术之JSTL标签&小案例

概念作用使用步骤常用的JSTL标签小案例

概念

JavaServer Pages Tag Library : JSP标准标签库 * 是由Apache组织提供的开源的免费的JSP标签

作用

用户简化和替换JSP页面上的Java代码

使用步骤

1. 导入JSTL相关的jar包 2. 引入标签库: taglib指令 <%@ taglib ="" prefix=""%> 3. 使用标签

常用的JSTL标签

if

相当于Java代码的if语句 <%-- 1.test 必须属性,接受boolean表达式 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容。 一般情况下,test属性值会结合el表达式一起使用 2.没有else,若是想用else,则只能再写一份<c:if ...> --%> <c:if test="true"> 我是真... </c:if> <% //判断request域中一个list集合为空,如果不为空,则显示遍历集合 List list = new ArrayList(); list.add("aaa"); request.setAttribute("number",3); request.setAttribute("list",list); %> <c:if test="${not empty list}"> 遍历集合 </c:if> <c:if test="${number % 2 !=0}"> ${number}为奇数 </c:if> <c:if test="${number % 2 ==0}"> ${number}为偶数 </c:if>

choose

相当于 Java代码的switch <%-- 完成对应数字编号对应星期几的案例 1. 域中c储存一数字 2. 使用choose标签取出数字, 相当于switch声明 3. 使用when标签做出判断, 相当于case 4. otherwise标签做其他情况的声明 ,相当于default --%> <% request.setAttribute("number",3); %> <c:choose> <c:when test="number==1">星期一</c:when> <c:when test="number==2">星期二</c:when> <c:when test="number==3">星期三</c:when> <c:when test="number==4">星期四</c:when> <c:when test="number==5">星期五</c:when> <c:when test="number==6">星期六</c:when> <c:when test="number==7">星期天</c:when> <c:otherwise>输入有误</c:otherwise> </c:choose>

foreach

相当于Java代码的for语句 <%-- foreach:相当Java的for语句 1. 完成重复的操作 for(int i = 0;i<10;i++){\ } 属性: begin:开始值 end:结束值 var:临时变量 step:步长 varStatus:循环对象 包含俩对象 index:容器中循环的索引,从0开始 count:循环次数,从1开始 2,遍历容器 Lis<User> list; for(User user : list){ } --%> <c:forEach begin="1" end="10" var="1" step="1" varStatus="s"> ${i}<br/> </c:forEach> <hr/> <% List list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); request.setAttribute("list",list); %> <c:forEach items="${list}" var="str" varStatus="s"> ${s.index} ${s.count} ${str}<br/> </c:forEach>

小案例

需求: 在request域中有一个存有User对象的List集合。 需要使用jstl +el 将集合数据展示到JSP页面的表格table中

JSP代码:

<%@ page import="com.web.domain.User" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ page import="java.util.Date" %><%-- Created by IntelliJ IDEA. User: OldAZ-PC Date: 2020/9/4 Time: 21:04 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> </head> <body> <% List list = new ArrayList(); list.add(new User("张三",23,new Date())); list.add(new User("李四",25,new Date())); list.add(new User("王老五",26,new Date())); request.setAttribute("list",list); %> <table border="1px" width="500" align="center"> <tr> <td>编号</td> <td>姓名</td> <td>年龄</td> <td>日期</td> </tr> <c:forEach items="${list}" var="user" varStatus="s"> <c:if test="${s.count%2==0}"> <tr bgcolor="#d2691e"> <td>${s.count}</td> <td>${user.name}</td> <td>${user.age}</td> <td>${user.birStr}</td> </c:if> <c:if test="${s.count%2!=0}"> <tr bgcolor="#00ffff"> <td>${s.count}</td> <td>${user.name}</td> <td>${user.age}</td> <td>${user.birStr}</td> </c:if> </tr> </c:forEach> </table> </body> </html>

User代码:

package com.web.domain; import java.text.SimpleDateFormat; import java.util.*; /** * @author OldAZ-PC */ public class User { private String name; private int age; private Date birthday; //逻辑视图 public User() { } public User(String name, int age, Date birthday) { this.name = name; this.age = age; this.birthday = birthday; } public String getBirStr(){ if (birthday != null) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); return sdf.format(birthday); }else{ return ""; } } 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; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
最新回复(0)