玩命加载中 . . .

JSTL表达式(05)


JSTL表达式

概述

JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。 是一个不断完善的开放源代码的 JSP 标签库。
EL 表达式主要是为了替换 jsp 中的表达式脚本, 而标签库则是为了替换代码脚本。 这样使得整个 jsp 页面变得更佳简洁。

JSTL组成

功能范围URI前缀
核心标签库–重点http://java.sun.com/jsp/jstl/corec
格式化http://java.sun.com/jsp/jstl/fmtfmt
函数http://java.sun.com/jsp/jstl/functionsfn
数据库(不使用)http://java.sun.com/jsp/jstl/sqlsql
XML(不使用)http://java.sun.com/jsp/jstl/xmlx

在 jsp 标签库中使用 taglib 指令引入标签库

  • CORE 标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  • FMT 标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
  • FUNCTIONS 标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  • SQL 标签库
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
  • XML 标签库
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

JSTL使用

  1. 先导入 jstl 标签库的 jar 包。

    • taglibs-standard-impl-1.2.1.jar
    • taglibs-standard-spec-1.2.1.jar
  2. 使用 taglib 指令引入相应的标签库。

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

core 核心库使用

<c:set />(使用很少)

  • 作用: set 标签可以往域中保存数据
<%--

作用: set 标签可以往域中保存数据
域对象.setAttribute(key,value);
scope 属性设置保存到哪个域
page 表示 PageContext 域(默认值)
request 表示 Request 域
session 表示 Session 域
application 表示 ServletContext 域
var 属性设置 key 是多少
value 属性设置值
--%>
保存之前: ${ sessionScope.abc } 
保存之后: ${ sessionScope.abc }

<c:if />

  • if 标签用来做 if 判断
<%--
ii.
if 标签用来做 if 判断。
test 属性表示判断的条件(使用 EL 表达式输出)
--%>

12 等于 12

12 不等于 12

<c:choose> <c:when> <c:otherwise>标签

  • 作用: 多路判断。 跟 switch … case …. default 非常接近
<%--
  标签
作用: 多路判断。 跟 switch ... case .... default 非常接近
choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
  标签使用时需要注意的点:
1、 标签里不能使用 html 注释, 要使用 jsp 注释
2、 when 标签的父标签一定要是 choose 标签
--%>
<%
    request.setAttribute("height", 180);
%>

    <%-- 这是 html 注释 --%>
    
        

小巨人

很高

还可以

<% 如果里面还需要做判断则需要基于标签内在做判断 %>

大于 160

大于 150

大于 140

其他小于 140

<c:forEach />

  • 作用: 遍历输出使用。

例1:遍历 1 到 10, 输出

<%-- 遍历 1 到 10, 输出
begin 属性设置开始的索引
end 属性设置结束的索引
var 属性表示循环的变量(也是当前正在遍历到的数据)
for (int i = 1; i < 10; i++)
--%>

        
第${i}行

例2:遍历 Object 数组

<%-- 遍历 Object 数组
for (Object item: arr)
items 表示遍历的数据源(遍历的集合)
var 表示当前遍历到的数据
--%>
<%
    request.setAttribute("arr", new String[]{"18610541354","18688886666","18699998888"});
%>

    ${ item } 

例3:遍历 Map 集合

<% // 遍历 Map 集合  
    Map map = new HashMap();
    map.put("key1", "value1");
    map.put("key2", "value2");
    map.put("key3", "value3");
    // for ( Map.Entry entry : map.entrySet()) {}
    request.setAttribute("map", map);
%>

    

${entry.key} = ${entry.value}

例4:遍历List集合-list 中存放Student类

  • Student实体类
public class Student {
    //编号, 用户名, 密码, 年龄, 电话信息
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String phone;
}
  • JSP
<%
    List studentList = new ArrayList();
    for (int i = 1; i <= 10; i++) {
        studentList.add(new Student(i,"username"+i ,"pass"+i,18+i,"phone"+i));
    } r
    equest.setAttribute("stus", studentList);
%>

    <%--
        items 表示遍历的集合
        var 表示遍历到的数据
        begin 表示遍历的开始索引值
        end 表示结束的索引值
        step 属性表示遍历的步长值
        varStatus 属性表示当前遍历到的数据的状态
        for(int i = 1; i < 10; i+=2)
    --%>
    
        
编号 用户名 密码 年龄 电话 操作
${stu.id} ${stu.username} ${stu.password} ${stu.age} ${stu.phone} ${status.step}

文章作者: 小靳同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小靳同学 !
评论
 上一篇
Ajax笔记(03) Ajax笔记(03)
Ajax学习笔记03概述 B/S 结构项目中, 浏览器(Browse)负责把用户的请求和参数通过网络发送给服务器(Server) ,服务端使
2021-12-05
下一篇 
JS笔记(01) JS笔记(01)
JS学习笔记01概述 JavaScript是一种专门在浏览器编译并执行的编程语言。 JavaScript处理用户与浏览器之间请求问题。 Ja
2021-12-03
  目录